This release is a pre-release and may not be stable for production use.
claude-skills-mcp-dev
Private dev repo for the
active-claude-github
Claude Code skill's MCP server. Consumer docs live at the publish
target: https://codeberg.org/telejester-skills/telejester-claude-skills.
This repo is where MCP server development happens — Issues, Discussions, CI, Bazel build graph, tests. Releases are published to the publish-target repo linked above.
What lives here
- Python package
active_claude_github_mcp/implementing the MCP tool surface. tests/— Bazel-orchestrated unit and integration tests in two layers: helper-level (#79, ephemeral repos) and tool-level (#89, persistent fixture repo attelejester-test-org/integration-fixture). SeeCONTRIBUTING.mdfor the build and test conventions and §Persistent fixture repo for the provisioning protocol..github/workflows/— CI (bazel test+bazel coverageon every PR;workflow_dispatchlive-GitHub integration tests).- Issues / Discussions / Project board cross-referenced with the skill dev repo at https://github.com/orgs/telejester-claude-skills/projects/1.
Bootstrapping a new project
scaffold_project is the MCP tool that stands up a new managed project
end-to-end: creates the <org>/<name> public + <org>/<name>-dev
private repo pair, seeds the standard label set, enables Discussions on
the dev repo, creates a ProjectV2 board (linked to both repos) with the
canonical Backlog → In Progress → In Review → Done / Parked Status
field, seeds the Project and Session-Lock Discussions, and writes
.claude/github-config.json with every resolved ID.
The tool is idempotent and pauses for exactly one manual step: creating
the five Discussion categories (Project, Architecture, UX / UI,
Ideas, claude-use-only) via the dev-repo's Settings page, which
GitHub exposes no API for. Re-run the tool once the categories exist
and it picks up where it left off.
The exact bootstrap flow — invocation, expected pauses, and follow-up
open_session — lives in the consumer skill's §Self-Bootstrap
Instructions: https://codeberg.org/telejester-skills/telejester-claude-skills.
Multi-repo relations (1.3.0+)
github-config.json accepts a related_repos list that tags each
connected repo with one of six relationship types. The server uses
these tags at dispatch time to gate cross-repo mutations per the
skill's §Cross-repo work protocol:
| Type | Gate |
|---|---|
subsystem, publish_target, sibling, neighbor |
Allowed |
cousin (different org, skill-managed) |
Blocked — requires explicit user permission per operation |
foreign (no write access) |
Blocked — treat as informational only |
Blocks surface as a non-buffered OperationError with manual_step
populated; no GitHub calls are issued. Unknown targets (not declared
in related_repos) pass through — the preflight doesn't invent
policy for undeclared repos.
The pre-1.3.0 contribution_target type still parses for backward
compat but emits a DeprecationWarning at load. Migrate each entry
to its precise sub-type at next config edit.
Operating system support
Recorded 2026-09-08 (issue #3667). Until then this package declared
Operating System :: OS Independent — a claim asserted in pyproject.toml,
tested on exactly one OS, and contradicted by the tree.
| OS | Status | What that means |
|---|---|---|
| Linux | Supported | The suite runs here. Every CI workflow is ubuntu-latest, and procfs, POSIX signals and the .claude/scripts/ shell tooling all assume it. |
| macOS | Best-effort | Operator decision. Real per-OS work exists and is maintained; a macOS CI job is authored. Breakage is a bug worth filing, not a promise of a fix in any given release. |
| Windows | Not claimed | Nobody has asked for it. Not "known broken" — unmeasured, and deliberately not asserted either way. |
Why best-effort rather than supported or unsupported. All three were
legitimate; leaving it undeclared was not. The code already carries genuine
per-OS work — daemon/paths.py branches on darwin for
~/Library/Application Support and ~/Library/Logs, and preferred_port.py
and daemon_client.py guard on win32 — so calling macOS unsupported would
have understated what is there and invited that work to rot. Calling it
supported would have made the same mistake OS Independent made, one level
up: a support claim with no runner behind it. Best-effort names the actual
position — the work exists, it is not gated on, and the runner keeps it honest.
What is known to degrade off Linux. The package reads /proc in 8 modules.
Every read site is wrapped in a handler, so nothing crashes; the risk is the
opposite one. Where procfs is absent:
- Daemon liveness now reports
unknownrather than a state. The classifier used to answerbusy— "alive, not stuck, no restart needed" — from proc-state samples that were allNonebecause the file does not exist. It said "D not sustained" about a process nobody had looked at, and a genuinely wedged daemon would have readbusyforever. A classifier that cannot read its evidence must say so. - Zombie detection is blind.
is_pid_zombiereturnsFalsewhen it cannot read/proc/<pid>/status, so a dead-but-unreaped daemon reads as alive. This is why theunknownverdict sayspid aliveis weaker off Linux. - The
.claude/scripts/tooling (24 shell scripts, two usingionice, which macOS does not have) is developer-facing and unaffected by installing the package.
The macOS CI job in .github/workflows/bazel-test.yml is authored but not
yet verified — it waits on a macOS runner being provisioned. Until it has
reported at least once, this table records an intention backed by code, not a
measurement.
Contributing
See CONTRIBUTING.md.
Related repos
- MCP server publish target (consumer-facing): https://codeberg.org/telejester-skills/telejester-claude-skills
- Skill (consumer-facing): https://codeberg.org/telejester-skills/telejester-claude-skills
- Skill dev repo: https://codeberg.org/telejester-skills/telejester-claude-skills-dev
License
Apache License 2.0 — © 2026 Telejester.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file forge_manager_mcp-4.18.0a27.tar.gz.
File metadata
- Download URL: forge_manager_mcp-4.18.0a27.tar.gz
- Upload date:
- Size: 9.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1b2d8a004d9f4dcf50c490d7b1ff2f4d8c714715fd329ab706621153cbcc65d0
|
|
| MD5 |
bc887ba4130bb102543310363eb9286a
|
|
| BLAKE2b-256 |
20efed05942bbef595295ed762f83d3357d0b57bd348b32f92099f03e2d95f0e
|
File details
Details for the file forge_manager_mcp-4.18.0a27-py3-none-any.whl.
File metadata
- Download URL: forge_manager_mcp-4.18.0a27-py3-none-any.whl
- Upload date:
- Size: 8.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f8f863c9ac6b9a7d6a926f90b38a5a61699571fdca71b3b058624b0548e7d730
|
|
| MD5 |
a6431d12fd7f33ec6453172cea019fd0
|
|
| BLAKE2b-256 |
b0514086cc6e9369de04cad053238b7e8b63a1084f90d23782b1b264f882f17d
|