Integrate Spec-Driven Development (Spec Kit) into agent kit, council, and runners#602
Merged
Merged
Conversation
…cil, and runners
Adopts GitHub Spec Kit (pinned upstream v0.9.5) as Spec-Driven Development
scaffolding across the agentic platform, vendored as render-managed agent-kit
content rather than wrapping the specify CLI — every non-negotiable (checked-in,
rendered, sha-guarded, Claude/Codex parity, offline-capable runners, no runtime
network) rules out runtime specify init/upgrade.
Agent kit + installer:
- .specify/ templates and bash scripts, a personal-stack constitution, and nine
/speckit.* commands delivered to Claude (.claude/commands/) and Codex
(.agents/skills/speckit-*), all under manifest + render parity with sha pins.
- render-agent-kit.py learns a commands category and .specify seeding; the served
install.sh seeds the surface for --scope user|project with the full
dry-run/uninstall lifecycle. taskstoissues is a real gh issue wrapper honoring
the repo's assignee/label conventions.
- Manifest version bumped to 2; AgentKitManifestTest covers the new commands,
Codex skills, and .specify surface.
Council:
- The plan phase emits specs/NNN-<slug>/{spec,plan,tasks}.md alongside the
canonical tasks.json; a constitution summary is injected into the
planner/critic/reviser/consolidator prompts; a consistency gate hard-fails on
artifact mismatch. Free-text briefs still work.
Runner:
- The runner image bakes the .specify source to /opt/agent-kit/sdd and the
entrypoint seeds every cloned repo (seed-if-absent), making SDD present by
default. PlatformAgentMcpFluxTest asserts the COPY and seed wiring.
The MCP server profiles are intentionally unchanged: Spec Kit is filesystem and
prompt scaffolding, not an MCP server, so it lands in the render/install path,
not the profiles configmap.
jorisjonkers-dev-agents Bot
pushed a commit
that referenced
this pull request
Jun 8, 2026
Per the single-pipeline model: full.yml is renamed to ci.yml (name: CI) to align with the other ExtraToast repos, and the fast (push) and nightly (scheduled) pipelines are removed — the one PR pipeline ending in the required Pipeline Complete check is the gate. The 'Lint Frontend' job is renamed 'Lint & Format' since it also runs the repo-wide prettier format:check. That check was failing on Spec-Kit templates (.claude/commands/, .specify/) introduced in #602; those are generated/authored template text, so they are added to .prettierignore alongside the existing agent-kit entries rather than reformatted. Part of #608.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adopts GitHub Spec Kit (Spec-Driven Development) as a first-class layer of the agentic platform. Spec Kit is vendored as render-managed agent-kit content pinned to upstream
v0.9.5, not wrapped via thespecifyCLI: every platform non-negotiable — checked-in, rendered, sha-guarded, Claude/Codex parity, offline-capable runners, no runtime network — rules out a runtimespecify init/upgrade.Spec Kit is filesystem and prompt scaffolding, not an MCP server, so it lands in the render/install path. The MCP server profiles configmap is intentionally unchanged.
Agent kit + installer
.specify/templates and bash scripts, a personal-stack constitution, and nine/speckit.*commands delivered to Claude (.claude/commands/) and Codex (.agents/skills/speckit-*), all under manifest + render parity with sha pins.render-agent-kit.pylearns acommandscategory and.specifyseeding; the servedinstall.shseeds the surface for--scope user|projectwith the full dry-run/uninstall lifecycle.taskstoissuesis a realgh issuewrapper honoring the repo's assignee/label conventions.AgentKitManifestTestcovers the new commands, Codex skills, and.specifysurface.Council
specs/NNN-<slug>/{spec,plan,tasks}.mdalongside the canonicaltasks.json; a constitution summary is injected into the planner/critic/reviser/consolidator prompts; a consistency gate hard-fails on artifact mismatch. Free-text briefs still work.Runner
.specifysource to/opt/agent-kit/sdd; the entrypoint seeds every cloned repo (seed-if-absent), making SDD present by default.PlatformAgentMcpFluxTestasserts the COPY and seed wiring.Verification
render-agent-kit.py --checkand--doctor(6 ok, 0 warn, 0 fail) pass.AgentKitManifestTest+PlatformAgentMcpFluxTest: 31/31.council.py --self-testpasses;install.sh/entrypoint.shsyntax check clean.Docs follow in a stacked PR (
spec-kit/02-docs).