terse: rewrite v0.8.1 command templates — 1998 → 642 lines#3
terse: rewrite v0.8.1 command templates — 1998 → 642 lines#3fry-lobster merged 1 commit intomainfrom
Conversation
Rewrote all 9 command templates from scratch based on v0.8.1 upstream
content, applying the fork's terse philosophy:
- Collapsed the ~60-line hook-checking boilerplate duplicated in every
file down to one line ("Run hooks.before_X from .specify/extensions.yml
if present"). This alone saved ~500 lines across the 9 files.
- Cut long example lists (implement.md's per-technology ignore-file
enumerations, specify.md's "For AI Generation" prose, good/bad
example tables) to 2-3 representative cases.
- Removed philosophy prose that restated what the step-by-step already
said.
- Added explicit output line limits to constrain generated artifacts:
spec.md ≤50 lines, plan.md ≤60 lines.
- Preserved all v0.8.1 new features: __SPECKIT_COMMAND_X__ template
markers (for install-time substitution), .specify/feature.json
persistence, branch_numbering sequential/timestamp mode, extension
hook points, checklist gate in implement, scripts frontmatter with
sh/ps variants.
Per-file:
specify 327 → 74
plan 152 → 59
tasks 203 → 84
implement 201 → 65
analyze 252 → 95
checklist 364 → 54
clarify 250 → 94
constitution 150 → 76
taskstoissues 99 → 41
Data templates (templates/*.md) left untouched for now; the command-
level line-limit instructions constrain output at generation time even
if the templates retain their example sections. If still too verbose
in practice, data-template trimming can follow in a separate PR.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Double-Check Review: PR fellowship-dev/spec-kit#3 — terse: rewrite v0.8.1 command templates — 1998 → 642 linesReviewer: tooling.cto (automated double-check) IntentRestores the fork's terse command style on top of v0.8.1. The PR delivers what it claims: all 9 command templates rewritten from verbose upstream (1998 lines) to terse versions (642 lines, 68% cut), with all v0.8.1 functional features verified present. Implementation
Curated CI Findings
New Issues (not caught by CI)
Tests After Fixes
Template Impact AssessmentAll critical v0.8.1 features confirmed present in terse templates:
VerdictNeeds one fix before merge. The structural trim is clean and well-executed. A single test failure points to a real functional regression: hook-based extensions won't work correctly after install because the dot-to-hyphen note is no longer injected. Fix |
CTO Review — tooling.ctoPR state at review: MERGED ✅ CI Assessment
FindingsMUST FIX (follow-up PR required)
Fix options:
All else PASS
ActionPlease open a follow-up PR to fix |
Follow-up to #3 (command templates). The three data templates copied into `.specify/templates/` and read by the generation skills on every invocation were still upstream-verbose. Rewritten to keep the structural sections and FR-###/SC-### identifier patterns while cutting example bloat. - spec-template.md: 128 → 59 lines - plan-template.md: 104 → 61 lines - tasks-template.md: 251 → 84 lines What I kept: - Every section heading the skill instructions reference (User Stories, Edge Cases, Requirements, Success Criteria, Assumptions, Technical Context, Constitution Check, Project Structure, Complexity Tracking, Setup/Foundational/Stories/Polish phase structure). - FR-### / SC-### identifier patterns (load-bearing for analyze.md's coverage mapping). - Checklist task format and `[P] [USx]` labelling rules. - `__SPECKIT_COMMAND_X__` template markers for install-time substitution. - The "tests are OPTIONAL" rule and "[P] = different files" rule. What I cut: - 2 of 3 full user-story examples in spec and tasks (kept pattern). - Per-platform project-structure Option 1/2/3 walls of text — now a compact "pick one, delete the rest" block. - "Implementation Strategy" (MVP/Incremental/Parallel Team) section — duplicated the skill-level guidance. - "Parallel Example" code block — same. - Verbose ACTION REQUIRED HTML comments — the skill instructions already say how to fill placeholders. - `**Why this priority**:` / `**Independent Test**:` as dedicated per-story sub-bullets — the Acceptance Scenarios already convey this. Leaving checklist-template (40L) and constitution-template (28L) alone — both already compact. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Summary
Restores the fork's terse identity on top of v0.8.1. Before: the 9 command templates copied upstream verbatim (1998 lines total). After: rewritten terse versions (642 lines total — 68% cut).
Why
fellowship-dev/pylot#239 tracks this re-trim. PR #2 synced upstream but dropped the terse customizations to keep conflict resolution tractable; this PR is the follow-up that puts them back.
What I trimmed
.specify/extensions.ymland formatting hook messages, duplicated across 9 files. Collapsed to one line: "Runhooks.before_Xfrom.specify/extensions.ymlif present." This alone saved ~500 lines.implement.md's per-technology ignore-file patterns (Node/Python/Java/C#/Go/Ruby/PHP/Rust/Kotlin/C++/C/Swift/R),specify.md's "For AI Generation" / Good vs Bad examples tables,clarify.md's taxonomy enumeration. Cut to 2-3 representative cases each.What I preserved
__SPECKIT_COMMAND_X__template markers (install-time substitution),.specify/feature.jsonpersistence,branch_numbering(sequential vs timestamp), extension hook points,checklist gatein implement,scripts:frontmatter with bothsh:andps:variants.What I added
Output line limits on the terse command instructions:
spec.md must be ≤50 lines(in specify)plan.md must be ≤60 lines(in plan)Per-file before/after
Verification
Installed the rewritten fork locally:
Installed skills total 668 lines (down from ~2000 for upstream equivalents). All skill names and invocation paths unchanged (
/speckit-specify,/speckit-plan, etc.).Data templates (not in this PR)
templates/*-template.md(spec-template 128L, plan-template 104L, tasks-template 251L) retain upstream's example sections. The command-level line limits constrain output at generation time regardless of template verbosity, but if generated artifacts still run long in practice, template trimming follows as a separate PR.🤖 Generated with Claude Code