mirror of
https://github.com/garrytan/gstack.git
synced 2026-06-18 07:40:09 +02:00
261d57a8e3
ship/SKILL.md drops 167KB → 68.7KB (~59% of the always-loaded skill) by moving
8 prose-heavy steps into ship/sections/*.md, read on demand:
tests, test-coverage, plan-completion, review-army, greptile, adversarial,
changelog, pr-body. Step 12's version logic now calls the tested
gstack-version-bump CLI instead of inline bash.
Claude-first (S2): {{SECTION:id}} emits a STOP-Read pointer on Claude (skeleton +
generated section files) and INLINES the content on every other host, so external
hosts keep the full monolith — verified factory at 162KB with no sections dir.
{{SECTION_INDEX:ship}} renders the situation→section table from the PASSIVE
manifest (CM2 / v2_PLAN.md:663); required-reads live only in test fixtures.
Multi-pass resolve expands inlined sections' own resolvers.
Parity: ship invariant flipped to sectioned (union content checks + maxSkeletonBytes
asserts the shrink). Carve-fallout fixed across gen-skill-docs/skill-validation/
golden/plan-completion/#1539/size-budget tests via skeleton+sections union reads.
Free suite green except the pre-existing investigate parity drift.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
57 lines
2.0 KiB
JSON
57 lines
2.0 KiB
JSON
{
|
|
"$schema": "https://gstack.dev/schemas/section-manifest.json",
|
|
"skill": "ship",
|
|
"version": 1,
|
|
"note": "PASSIVE registry (v2 plan T9 / CM2). Fields are IDs, file paths, human titles, and human-readable trigger text ONLY. The skeleton's decision-tree prose is the ONLY place that decides WHEN to read a section; required-reads live in the E2E fixtures. No machine predicate here — see docs/designs/v2_PLAN.md:663.",
|
|
"sections": [
|
|
{
|
|
"id": "tests",
|
|
"file": "tests.md",
|
|
"title": "Test bootstrap, run, triage + eval suites",
|
|
"trigger": "running the test suites and (if prompt files changed) the eval suites (Steps 4-6)"
|
|
},
|
|
{
|
|
"id": "test-coverage",
|
|
"file": "test-coverage.md",
|
|
"title": "Test coverage audit (subagent)",
|
|
"trigger": "auditing test coverage of the diff (Step 7)"
|
|
},
|
|
{
|
|
"id": "plan-completion",
|
|
"file": "plan-completion.md",
|
|
"title": "Plan completion + verification audit (subagent)",
|
|
"trigger": "auditing plan completion, verification, and scope drift (Step 8)"
|
|
},
|
|
{
|
|
"id": "review-army",
|
|
"file": "review-army.md",
|
|
"title": "Pre-landing review + specialist army",
|
|
"trigger": "the pre-landing review and specialist dispatch (Step 9)"
|
|
},
|
|
{
|
|
"id": "greptile",
|
|
"file": "greptile.md",
|
|
"title": "Address Greptile review comments",
|
|
"trigger": "addressing Greptile review comments when a PR exists (Step 10)"
|
|
},
|
|
{
|
|
"id": "adversarial",
|
|
"file": "adversarial.md",
|
|
"title": "Adversarial review + learnings refresh",
|
|
"trigger": "the adversarial review and learnings capture (Step 11)"
|
|
},
|
|
{
|
|
"id": "changelog",
|
|
"file": "changelog.md",
|
|
"title": "CHANGELOG entry (release-summary + itemized)",
|
|
"trigger": "writing the CHANGELOG entry (Step 13)"
|
|
},
|
|
{
|
|
"id": "pr-body",
|
|
"file": "pr-body.md",
|
|
"title": "Documentation sync + PR/MR creation",
|
|
"trigger": "syncing docs and creating or updating the PR/MR (Steps 18-19)"
|
|
}
|
|
]
|
|
}
|