Repository integration layer to the helic-forge agentic software factory and operations facility.
Find a file
tegwick bdb981be2b fix(registrar): bind workplan files to their records in the same pass
backing_filename is what lets the read model tell a file-backed workplan from
a hub-only orphan. It is written by PUT /workplans/index/bindings, which
fix-consistency calls for workplans that already carry a UUID — but the
registrar mints the UUID afterwards, so a freshly registered workplan stayed
unbound until someone happened to run fix-consistency a second time.

Nobody did: 278 of 800 workplans on central recorded no backing file,
including four active and four ready. ADR-010 predicted this as the
"broken links" class.

The registrar now syncs bindings after minting, and on the noop path too —
otherwise a record whose earlier bind failed stays unbound forever, because
every later run returns early.

Binding never fails the registration: the identifiers are already minted and
committed, and a bind can be retried.

Status is sent only when already canonical. The binding schema validates
against the enum without normalising, so one legacy value 422s the whole
batch; omitting beats guessing a mapping that could drift from canon.

Refs CUST-WP-0068-T07

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 2583210@bnt-lap001
Assistant-Session: f2bff2d5-e9b2-4338-92ca-10282a927006
2026-08-25 15:39:11 +02:00
.githooks feat: advance repository records and provenance 2026-08-21 22:07:48 +02:00
config fix(identity): enforce qualified ad-hoc identifiers 2026-08-23 14:45:26 +02:00
decisions repo.work.resolve_decision RMGR-DEC-2026-003 2026-08-22 22:34:15 +02:00
docs fix(identity): enforce qualified ad-hoc identifiers 2026-08-23 14:45:26 +02:00
history docs: research SH repo tooling, architecture blueprint, RMGR-WP-0002 2026-08-09 23:04:49 +02:00
intakes chore(registrar): assign State Hub identifiers 2026-08-21 22:44:54 +02:00
interfaces feat(identifiers): verify batch projections 2026-08-22 23:50:34 +02:00
schemas feat(handoffs): publish owner task interfaces 2026-08-22 14:15:48 +02:00
specs docs: research SH repo tooling, architecture blueprint, RMGR-WP-0002 2026-08-09 23:04:49 +02:00
src/repo_manager fix(registrar): bind workplan files to their records in the same pass 2026-08-25 15:39:11 +02:00
tests fix(registrar): bind workplan files to their records in the same pass 2026-08-25 15:39:11 +02:00
workplans fix(identity): enforce qualified ad-hoc identifiers 2026-08-23 14:45:26 +02:00
.custodian-brief.md chore(consistency): sync task status from DB [auto] 2026-08-22 23:26:32 +02:00
.gitignore feat(RMGR-WP-0001): complete T05 end-to-end vertical slice 2026-08-09 22:49:31 +02:00
.repo-classification.yaml Seed Repo Manager foundation 2026-08-09 16:36:09 +02:00
AGENTS.md docs(agents): repoint remote State Hub URL to the in-cluster address 2026-08-25 00:21:56 +02:00
INTENT.md docs: establish INTENT/SCOPE and activate RMGR-WP-0001 2026-08-09 21:55:59 +02:00
Makefile docs(RMGR-WP-0001): complete T04 implementation foundation 2026-08-09 22:41:26 +02:00
pyproject.toml feat: finish register receiving and authority routing 2026-08-21 23:15:48 +02:00
README.md feat(RMGR-WP-0008): add workplan and register receiving surfaces 2026-08-21 17:15:21 +02:00
SCOPE.md docs: establish INTENT/SCOPE and activate RMGR-WP-0001 2026-08-09 21:55:59 +02:00
WORK-RECORDS.md feat(sbom): add authoritative Nexus client 2026-08-22 23:26:45 +02:00

repo-manager

Repository integration boundary for the HelixForge agentic software development and operations environment.

Repositories remain independently valid and usable. Repo Manager gives each repository a stable representation inside HelixForge, observes its declared state, performs governed repository changes, and hosts its coach/lead/director agent representation.

Flavor tooling (not a domain hub)
Domain infotech
Parent project prj-state-hub-retirement
Foundation WP RMGR-WP-0001

Start with INTENT.md, SCOPE.md, and the genesis record.

Architecture:

make install   # or: uv pip install -e ".[dev]"
make test
rmgr --version
rmgr observe --path .
rmgr reconcile --path .
rmgr update-task-status --path . --task-id <ID> --status progress
rmgr workplan create --path . --workplan-id EX-WP-0001 --title "Example" --goal "Deliver X."
rmgr workplan update --path . --workplan-id EX-WP-0001 --status active
rmgr workplan delete --path . --workplan-id EX-WP-0001 --confirm  # archives; never erases
rmgr register put --path . --kind technical-debt --entry-id TD-001 \
  --title "Debt item" --data-json '{"severity":"high"}'
rmgr register list --path . --kind technical-debt
rmgr rapp wrap --path ../rapp-some-app --app some-app \
  --ownership-repo some-app --from-app ../some-app
rmgr rapp validate --path ../rapp-user-engine --family-root ..
rmgr rapp place --path ../rapp-some-app --reef reef-railiance
rmgr conform --path .
rmgr prefix-uniqueness --root ..
rmgr scaffold --path ../prj-example --flavor project --wp-prefix EX-WP --no-commit

Vertical-slice proof: docs/evidence/t05-vertical-slice.md.

Direction: