You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is a tracker for follow-ups from the architectural review of specs-cli performed on 2026-05-07. The full review is at #42 (comment). Each sub-issue below corresponds to one numbered item in that review and is self-contained: it states the concern, points to the file/line locations, and proposes a direction. Future contributors (humans or LLMs) should be able to pick up any sub-issue without reading the others.
Scope
The review covered: pkg/cmd, pkg/template, pkg/hooks, pkg/host, pkg/specs, pkg/util, the CI/release setup, and the architecture docs under docs/content/docs/architecture/.
Strengths (no action needed, captured for context)
Clean package layering: pkg/cmd (orchestration) → pkg/template (engine) → pkg/util/* (primitives). The rule "pkg/template must not import pkg/cmd" is honored.
AST-driven analysis in pkg/template/analysis.go walks the text/template parse tree to discover both referenced and conditional variables, enabling the iterative dependency-aware prompting in pkg/cmd/template_use.go.
output.Writer abstraction with Human and JSON implementations is well-designed; NDJSON for streaming is a good choice.
Architecture docs document why, not just what.
GoReleaser + Homebrew + Docker-based dev workflow is mature.
Context
This is a tracker for follow-ups from the architectural review of
specs-cliperformed on 2026-05-07. The full review is at #42 (comment). Each sub-issue below corresponds to one numbered item in that review and is self-contained: it states the concern, points to the file/line locations, and proposes a direction. Future contributors (humans or LLMs) should be able to pick up any sub-issue without reading the others.Scope
The review covered:
pkg/cmd,pkg/template,pkg/hooks,pkg/host,pkg/specs,pkg/util, the CI/release setup, and the architecture docs underdocs/content/docs/architecture/.Strengths (no action needed, captured for context)
pkg/cmd(orchestration) →pkg/template(engine) →pkg/util/*(primitives). The rule "pkg/templatemust not importpkg/cmd" is honored.pkg/template/analysis.gowalks thetext/templateparse tree to discover both referenced and conditional variables, enabling the iterative dependency-aware prompting inpkg/cmd/template_use.go.output.Writerabstraction with Human and JSON implementations is well-designed; NDJSON for streaming is a good choice.Sub-issues
High-impact
pkg/registry; consolidate project-file readers--safe-modeshould imply--no-hooks; harden hook executionMedium-impact
Dockerfileandcompose.ymlpurpose in READMELower-impact polish (bundled checklist)
Suggested ordering
If prioritizing a sprint:
--no-hooksfrom--safe-mode; fail-fast on render errors with opt-in continue (--safe-mode should imply --no-hooks; harden hook execution #44, Default to fail-fast on template render errors #46).pkg/registryand consolidate the project-file readers (Extract pkg/registry; consolidate project-file readers #43).