Skip to content

feat!: v2 single-source rebuild — Phase 0 + Phase 1 - #3

Merged
jvanheerikhuize merged 4 commits into
mainfrom
docs/rebuild-plan
Jul 25, 2026
Merged

jvanheerikhuize merged 4 commits into
mainfrom
docs/rebuild-plan

Conversation

@jvanheerikhuize

Copy link
Copy Markdown
Owner

Executes Phase 0 and Phase 1 of docs/REBUILD_PLAN.md (the plan merged in #2).

What changed

Build pipeline (Phase 0)

  • tools/build.py compiles roles/**/role.md → dist/prompts/<slug>.md + generated index.yaml (merged with the new hand-edited catalog.yaml). Deterministic output; satisfies the existing resolve.sh awk contract.
  • schemas/role.schema.json documents the frontmatter contract.
  • CI (.github/workflows/validate.yml): rebuild, fail on stale committed artifacts, then validate-index.sh + test-roles.sh.

Single source of truth (Phase 1)

  • All 23 kept roles migrated to roles/<category>/<slug>/role.md (frontmatter + prompt body; bodies byte-identical to v1). tools/migrate.py kept for provenance.
  • index.yaml is now generated. New per-role fields: targets ([system-prompt] for now) and interaction (conversational / single-shot / pipeline). files.prompt → dist/prompts/<slug>.md, files.source → the role.md.
  • Archived (see archive/README.md): 17 SemantiCode variants, S.C.R.I.B.E. (retired with the notation), F.O.R.G.E. (persona superseded by harnesses; policy extracted to snippets/engineering-discipline.md).
  • Docs rewritten for the new layout: README, AGENTS.md, CONTRIBUTING.md, VERSIONING.md; plan updated with Phase 0/1 status.

Breaking (v2.0.0-alpha.1)

  • files.semanticode / files.variant removed from index.yaml; roster is 23 roles.
  • v1 consumers should pin a v1.x tag (⚠️ maintainer follow-up: tag the last pre-rebuild commit as the final v1 release before merging this).

Verified

  • python3 tools/build.py deterministic; clean tree after rebuild.
  • scripts/validate-index.sh --check-crisis — all checks passed.
  • scripts/test-roles.sh — all 23 pass (4 pre-existing crisis-number WARNs).
  • resolve.sh smoke: --list (23), --id, --path, --chain, --group, --companions, --workflows, --category, --tag all correct; --semanticode errors gracefully.

Phases 2–4 (prompt modernization, harness-native targets, evals/MCP) are deferred to follow-up PRs.

🤖 Generated with Claude Code

jvanheerikhuize and others added 4 commits July 16, 2026 22:36
tools/build.py compiles roles/**/role.md (YAML frontmatter + prompt body)
into dist/prompts/<slug>.md and a generated index.yaml, merged with
catalog.yaml (module metadata, category order, workflows). Output is
deterministic and satisfies the existing resolve.sh awk contract.
tools/migrate.py is the one-shot v1->v2 migration, kept for provenance.
schemas/role.schema.json documents the frontmatter contract.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…legacy variants

- Every role is now authored in roles/<category>/<slug>/role.md
  (frontmatter + prompt body); prompt bodies are byte-identical to v1.
- index.yaml is generated by tools/build.py; consumable prompts build
  to dist/prompts/<slug>.md and both artifacts are committed.
- SemantiCode variants (17) archived: prompt caching and large context
  windows removed the economics that justified a compressed twin.
- S.C.R.I.B.E. retired with the notation; F.O.R.G.E. retired as a
  persona (harnesses run its workflow natively) with its policy
  extracted to snippets/engineering-discipline.md.
- validate-index.sh / test-roles.sh updated for the dist/ layout.

BREAKING CHANGE: files.semanticode/files.variant removed from
index.yaml; files.prompt now points to dist/prompts/<slug>.md and
files.source to the role.md source. Roster is 23 roles (forge and
scribe archived). v1.x tags preserve the old layout.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
GitHub Actions workflow rebuilds dist/ and index.yaml from the role.md
sources, fails if the committed artifacts are stale, then runs
scripts/validate-index.sh and scripts/test-roles.sh.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- README: roster tables link to dist/prompts/, S.P.R.A.Y. row added,
  F.O.R.G.E./S.C.R.I.B.E. removed (archive note kept), SemantiCode
  badge/row dropped, repo URLs fixed to jvanheerikhuize/Agent-Roles,
  single-source build section, updated structure tree and resolver
  examples.
- AGENTS.md: discovery via generated index.yaml -> files.prompt in
  dist/, files.source for frontmatter; build workflow for in-repo
  agents; targets/interaction fields documented.
- CONTRIBUTING.md: author role.md, run tools/build.py, commit the
  generated artifacts; semanticode sync guidance removed.
- VERSIONING.md: version source is catalog.yaml, 2.0.0-alpha status,
  v1->v2 MAJOR rationale, pinning examples on the new paths.
- REBUILD_PLAN.md: Phase 0 and Phase 1 marked done with deltas.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@jvanheerikhuize
jvanheerikhuize marked this pull request as ready for review July 25, 2026 05:36
@jvanheerikhuize
jvanheerikhuize merged commit 9454ad6 into main Jul 25, 2026
1 check passed
@jvanheerikhuize
jvanheerikhuize deleted the docs/rebuild-plan branch July 25, 2026 05:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant