Skip to content

chore: sync SpecLedger templates to constitution v2.1.0#2

Open
so0k wants to merge 1 commit into
mainfrom
worktree-sync-templates-constitution
Open

chore: sync SpecLedger templates to constitution v2.1.0#2
so0k wants to merge 1 commit into
mainfrom
worktree-sync-templates-constitution

Conversation

@so0k
Copy link
Copy Markdown
Contributor

@so0k so0k commented May 24, 2026

Why

The constitution was amended to v2.1.0 (nine principles): added III. Ground-Truth Anchoring and IX. Skill–CLI Co-Evolution, folded output-shape assertions into II, and split the old Simplicity/YAGNI principle into VI–VIII. The .specledger/templates/ still reflected the old five-principle structure, so the Constitution Check gate and task scaffolding were stale and partly Python-flavored.

Changes

plan-template.md

  • Constitution Check rewritten to all nine principles — renumber Agent-First CLI Design (III→IV) and Code Quality (IV→V); add III. Ground-Truth Anchoring and IX. Skill–CLI Co-Evolution; output-shape assertions in II; split V → VI–VIII.
  • Testing line cites output-shape assertions + ground-truth fixtures/tiers.
  • Source Code layout replaced with skillrig's Go structure (cmd/skillrig, internal/skillcore|config|lock|index|client, testdata/cassettes) instead of the src/models/services Python placeholder (Constitution V).

spec-template.md

  • Acceptance-scenario output-shape guidance so scenarios seed shape-asserting tests, not strings.Contains checks (Constitution II).

tasks-template.md

  • Foundational ground-truth fixture task (III).
  • Output-shape assertions noted in every user-story test section.
  • Polish tasks for pattern-gate classification (IV) and skill co-evolution trigger evals (IX) + design-doc sync.
  • Implementation tasks use Go paths (internal/, cmd/skillrig), not .py.
  • Definition of Done extended: shape assertions · ground-truth fixtures · pattern classification · skill coverage.

Deferred (not in this PR)

  • Checklist rename — there are two same-named checklist-template.md files (.specledger/templates/ generic vs docs/design/ pattern-gate). Renaming the design-doc one (+ updating constitution/cli.md references) was flagged optional; left as a follow-up to avoid touching files already on main.

🤖 Generated with Claude Code

Re-align the plan/spec/tasks templates with the nine-principle constitution
(v2.1.0); they still reflected the old five-principle structure.

plan-template.md
- Constitution Check gate rewritten to all nine principles: renumber
  Agent-First CLI Design (III→IV) and Code Quality (IV→V); add the new
  III. Ground-Truth Anchoring and IX. Skill–CLI Co-Evolution gates; fold
  output-shape assertions into II; split V into VI–VIII (Simplicity).
- Testing line cites output-shape assertions + ground-truth fixtures/tiers.
- Source Code layout replaced with skillrig's Go structure (cmd/skillrig,
  internal/skillcore|config|lock|index|client, testdata/cassettes) instead
  of the Python-flavored src/models/services placeholder (Constitution V).

spec-template.md
- Acceptance scenarios get output-shape guidance so they seed shape-asserting
  tests, not content-only checks (Constitution II).

tasks-template.md
- Foundational ground-truth fixture task (Constitution III).
- Output-shape assertions noted in every US test section.
- Polish tasks for pattern-gate classification (IV) and skill co-evolution
  trigger evals (IX); design-doc sync note.
- Implementation tasks use Go paths (internal/, cmd/skillrig) not .py.
- Definition of Done extended to shape assertions, ground-truth fixtures,
  pattern classification, and skill coverage.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
so0k added a commit that referenced this pull request May 26, 2026
… gaps

Resolve the post-implementation checkpoint findings on the origin resolver so a
future --verbose caller can never mistake a silent skip for intended behavior.

- config.MalformedError: typed, unwrappable. Load returns it for parse failures
  and a plain wrapped error for genuine I/O failures, so callers distinguish a
  skippable malformed file from a fatal read error (FR-004 / contract resolve.md).
- ResolveOrigin: add ResolutionResult.Diagnostics ([]SourceDiagnostic). New
  originFromFile classifies each source into four honest outcomes — usable /
  skippable-with-diagnostic (malformed or invalid origin) / quiet fall-through
  (absent or origin-less) / fatal I/O — replacing usableOrigin which collapsed
  everything (including I/O errors) to (zero, false). Diagnostics accumulate
  regardless of the final Source.
- Tests: malformed-project, invalid-shape, origin-less, unreadable-fatal,
  unreadable-project-fatal-despite-global (A3), and malformed-SKILLRIG_ORIGIN
  hard-error (A1); TestLoadMalformedErrors asserts errors.As(*MalformedError).
- Remove dead Origin.IsZero() (A4 — no callers).
- Reconcile research.md D9 to the shipped 0o600/0o750 perms (self-review #2).
- contracts/resolve.md + data-model.md document Diagnostics and the
  malformed-vs-fatal split, with a "never re-introduce a silent skip" note.

Gate green: go test ./... · gofmt · go vet · golangci-lint (0 issues).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
so0k added a commit that referenced this pull request May 26, 2026
…igin String, scope todo rule

Resolve the three real bugs from the Qodo PR review (#2/#3/#4); #1 dismissed as
a false positive with an AGENTS.md clarification.

- #2 FindProjectConfig now returns (string, bool, error): a non-fs.ErrNotExist
  stat failure (e.g. permission denied on an ancestor .skillrig dir) is surfaced
  as fatal instead of masked as "not found"; ResolveOrigin fails fast. Closes
  the discovery-stage gap symmetric to Load's I/O-fatal path.
- #3 Origin.String() returns "" for the zero Origin (the SourceNone sentinel)
  instead of a misleading "/"; precedence test compares directly.
- #4 gitRoot returns (string, error); ProjectWriteTarget falls back to cwd ONLY
  for expected cases (git absent / not a repo) and propagates unexpected errors
  (context cancellation/timeout, exec failures), so init never writes config to
  the wrong directory.
- #1 (markdown checkbox rule violation): false positive — the cited checkboxes
  are /specledger in-document spec/plan checklists, not work tracking. AGENTS.md
  reworded to scope the rule to work-item tracking and explicitly allow them.

Tests (TDD, real fixtures): zero-origin String, permission-denied walk-up fatal,
cancelled-ctx write-target fatal, non-repo cwd fallback preserved. Gate green:
go test ./... · gofmt · go vet · golangci-lint (0 issues).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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