Skip to content

chore(claude): encode 10 borrowings from IDSD series — disciplines + /feature-spec rigor + lineage#119

Merged
emeraldleaf merged 1 commit into
mainfrom
chore/encode-idsd-borrowings
Jun 5, 2026
Merged

chore(claude): encode 10 borrowings from IDSD series — disciplines + /feature-spec rigor + lineage#119
emeraldleaf merged 1 commit into
mainfrom
chore/encode-idsd-borrowings

Conversation

@emeraldleaf
Copy link
Copy Markdown
Owner

@emeraldleaf emeraldleaf commented Jun 5, 2026

Summary

Outcome of auditing all 5 articles in Kapil Viren Ahuja's IDSD vs SDD series (Activated Thinker, March–May 2026) plus our own deliberation. 10 method additions across 3 surfaces. One originally-proposed change (Connections section in `/feature-spec`) dropped — Ahuja himself walked it back in "The Anatomy of Intent" article.

Changes by file

`CLAUDE.md` — 2 new disciplines under Debugging Discipline (+4 lines)

  • Presence in the loop, not approval at the gate — names the distinction between pattern-conforming features (gate review fine) and non-pattern-conforming features (stay present during build). Ties to `/feature-spec`'s Significance Check.
  • Continue is the verb that gets you in trouble. Build is not. — prototypes need a token budget + stop-time set up front. From The Trap: "Nobody approves that. It approves itself, one month at a time."

CLAUDE.md size: 301 → 305 (well under the 400 soft cap).

`.claude/commands/feature-spec.md` — 6 additions

  • Step 1 prepended with Value gate (3 CXO questions): who needs this, would we still build it at engineering-time cost, who owns saying no. Source: The Trap.
  • Goal section gets the two-implementations test — if only one implementation can satisfy this, you wrote a spec disguised as a goal. Source: Anatomy of Intent.
  • Acceptance criteria gets the constraints-vs-failure-conditions decision rule callout. Source: Anatomy of Intent.
  • Affects gets a new "Upstream dependencies (assumptions that could shift)" subsection — names load-bearing context so the AI flags during build if any moves. Source: SDD Will Collapse.
  • New Non-functional constraints section (optional, 5-7 lines max, business language, not implementation patterns). Source: Anatomy of Intent.
  • Step 5 added: Hole-test — final completeness check before shipping the spec. Source: Anatomy of Intent. "Closing the loop" renumbered to step 6.

`docs/dev-loop.md` — 2 additions

  • "This is a method, not a harness" section right after At a glance — encoding loop is the method; Claude Code, CodeRabbit, GitHub Actions, Spec Kit, BMAD, Kiro, Garura are harnesses. Source: Ahuja's framing.
  • "Lineage and grounding" section before Source links — Larman/Basili 2003, Ostroff/Makalsky/Paige 2004 XP, METR 2025, Anthropic September 2025 postmortem, OpenAI Symphony April 2026, Uber 2026 budget burn, IDSD series. Includes the decay warning (every method eventually decays toward what it replaced — Agile → spec-process-with-shorter-cycles, etc.) and the encoding loop's defenses against decay.

Also corrected stale "six destinations" in At a glance → "five surfaces" to match the 5-surface encoding model shipped in #114.

What was deliberately NOT added

  • Connections section in `/feature-spec` — Ahuja walked this back in "The Anatomy of Intent": "For every team that already had a service mesh, the slot bled straight into Context, and the line stopped being sharp."
  • Acceptance split into Failure Conditions + Success Scenarios — Ahuja's reward-hacking argument (compartmenting evals) doesn't map to NextAurora's stack (Claude Code + CodeRabbit + deterministic CI gates). Adds visible ceremony for theoretical benefit. Revisit if team rollout surfaces friction with the unified Acceptance section.

Verification

  • `wc -l CLAUDE.md`: 305 lines (soft cap 400, hard fail 500)
  • Broken-link audit on full repo: exit 0
  • All cross-references resolve

What this is NOT

  • Not a Spec Kit competitor — encoding loop is the method, harnesses (Claude Code, CodeRabbit, GitHub Actions) carry it out
  • Not a re-adoption of per-feature SDD — `/feature-spec` remains the lean handoff document, now with better completeness checks
  • Not the final form — Ahuja's own decay-warning applies; periodic `/check-rules` audits should catch drift if these rules accumulate ceremony

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Expanded feature specification template with validation gates, constraint classification, and completeness checks to improve specification quality.
    • Enhanced debugging discipline rules documentation with additional best practices.
    • Updated development methodology documentation with improved encoding surface references and lineage/grounding context.

…n Triangle

Net result of auditing all 5 articles in Kapil Viren Ahuja's IDSD vs SDD
series (Activated Thinker, March–May 2026). 10 method additions across
3 surfaces. One originally-proposed change (Connections section) dropped
after re-audit — Ahuja himself walked it back in "The Anatomy of Intent."

CLAUDE.md "Debugging Discipline" (+ 2 rules, 4 lines net):
- Presence in the loop, not approval at the gate — distinguishes
  pattern-conforming features (gate review fine) from
  non-pattern-conforming features (stay present during build).
  Tied to `/feature-spec` Significance Check.
- Continue is the verb that gets you in trouble. Build is not. —
  prototypes need token budget + stop-time, set up front. From The Trap:
  "Nobody approves that. Nobody ever approves that. It approves itself,
  one month at a time."

.claude/commands/feature-spec.md (6 additions):
- Step 1 prepended with Value gate (3 CXO questions): who needs this,
  would we still build it at engineering-time cost, who owns saying no.
  From The Trap.
- Goal section: two-implementations test — if only one implementation can
  satisfy this, you wrote a spec disguised as a goal. From IDSD.
- Acceptance criteria: constraints-vs-failure-conditions decision rule
  callout. From IDSD.
- Affects: Upstream dependencies (assumptions that could shift) — names
  the load-bearing context the spec depends on, so the AI flags during
  build if any of it moves. From "SDD Will Collapse."
- New Non-functional constraints section (optional, 5-7 lines max,
  business language, not implementation patterns). From IDSD's anatomy
  of Intent.
- Step 5 added: Hole-test — final completeness check before shipping
  spec. From IDSD.
- Existing Closing the loop renumbered to step 6.

docs/dev-loop.md (2 additions):
- "This is a method, not a harness" section after At a glance —
  encoding loop is the method; Claude Code, CodeRabbit, GitHub Actions,
  Spec Kit, BMAD, Kiro, Garura are harnesses. Adopting a harness without
  a method is the default failure mode today.
- "Lineage and grounding" section before Source links — Larman/Basili
  2003, Ostroff/Makalsky/Paige 2004 XP, METR 2025, Anthropic Sept 2025
  postmortem, OpenAI Symphony April 2026, Uber 2026 budget burn, Ahuja's
  IDSD series. Includes the decay-warning rule and the encoding loop's
  contribution to the lineage (cross-feature compounding).

Also corrected stale "six destinations" in At a glance → "five surfaces"
to match the 5-surface encoding model we shipped in #114.

Verification:
- wc -l CLAUDE.md: 305 (was 301; soft cap 400, hard 500 — comfortably under)
- broken-link audit on full repo: exit 0
- All rule headlines linkable via /check-rules

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@codecov
Copy link
Copy Markdown

codecov Bot commented Jun 5, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jun 5, 2026

Ready to act? Review this PR in Change Stack to turn feedback into patch suggestions you can inspect and refine.

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: c566660a-3436-4b8d-894f-ddbcc76fc3f3

📥 Commits

Reviewing files that changed from the base of the PR and between e189e31 and 6e46e55.

📒 Files selected for processing (3)
  • .claude/commands/feature-spec.md
  • CLAUDE.md
  • docs/dev-loop.md

Walkthrough

This PR refines the continuous rule-encoding methodology documentation across three files. The feature-spec command template gains validation gates and completeness checks; the debugging discipline rules expand from three to five; and the development-loop documentation aligns surface counts and adds historical lineage and decay-resistance explanations.

Changes

Continuous Rule-Encoding Methodology Refinement

Layer / File(s) Summary
Feature Spec Template Enhancements
.claude/commands/feature-spec.md
The feature-spec command template is expanded with a value gate requiring three scoping questions before drafting, a two-implementations goal test, constraint-vs-failure classification, upstream dependencies tracking, optional non-functional constraints, and a hole-test completeness scan to detect guess-points in acceptance criteria, affects surfaces, security predicates, and endpoint contracts.
Debugging Discipline Rules Expansion
CLAUDE.md
Three new bolded rules are added to the Debugging Discipline section, and the final summary is updated from "All three rules" to "All five rules".
Development Loop Documentation & Lineage
docs/dev-loop.md
The reflexive-step lead-in is adjusted to reference five encoding surfaces instead of six destinations. A new "Lineage and grounding" section is appended, documenting prior methodologies, a decay-pattern warning about methods reverting to earlier forms, and explicit defenses explaining how the encoding loop's cross-feature compounding resists decay through surfaces and enforcement disciplines.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

  • emeraldleaf/NextAurora#115: Continues evolving the .claude/commands/feature-spec.md template, adding and expanding validation sections like the value gate, two-implementation test, and hole-test within the spec-generation flow.
  • emeraldleaf/NextAurora#54: Directly updates docs/dev-loop.md around the project's continuous rule-encoding surfaces and associated guideline text.
  • emeraldleaf/NextAurora#114: Updates the same rule-encoding documentation in CLAUDE.md and docs/dev-loop.md around the five-surface loop discipline.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the main purpose: encoding 10 borrowings from IDSD series across three repository surfaces (CLAUDE.md discipline rules, feature-spec rigor improvements, and dev-loop lineage section).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/encode-idsd-borrowings

Comment @coderabbitai help to get the list of available commands and usage tips.

@emeraldleaf emeraldleaf merged commit 4482640 into main Jun 5, 2026
7 checks passed
@emeraldleaf emeraldleaf deleted the chore/encode-idsd-borrowings branch June 5, 2026 22:01
emeraldleaf added a commit that referenced this pull request Jun 6, 2026
…nd the diagram (#120)

Follow-up to #119. The 10 borrowings landed CLAUDE.md disciplines
(Presence in the loop, Continue is the verb) but didn't surface them
in dev-loop.md / README / dev-loop.svg — the docs and diagram people
read at-a-glance to understand the loop. A reader could see the loop
in the diagram, then open CLAUDE.md and find two disciplines they
weren't told about.

docs/dev-loop.md
- New "### The disciplines (encoded in CLAUDE.md 'Debugging Discipline')"
  subsection under "The reflexive step" — catalogs all 6 disciplines
  (cross-reference convention, file-move, doc-and-diagram, lean-CLAUDE.md,
  presence-in-loop, continue-is-the-verb) with their layered enforcement
  (which 4 have mechanical floors, which 2 are convention-tier only).
  Points at CLAUDE.md "Debugging Discipline" for full text.

README.md
- "Continuous Rule Encoding" callout adds a sentence naming the 6
  disciplines + the lean-CLAUDE.md / presence / continue framings.
  Adds /feature-spec's value gate (3 CXO questions) and hole-test
  to the feature-handoff description.

docs/dev-loop.svg (the rendered diagram on the README)
- "Continuous Rule Encoding" footer in the diagram gets a new
  "Disciplines →" row listing all 6 by name, with a muted note
  about the split between mechanical and convention-tier
- Rect height extended 180 → 220, viewBox height 1940 → 1985,
  bottom footer line moved 1915 → 1960 to avoid overlap

This makes the README a faithful surface-up of what's actually in
CLAUDE.md. Anyone reading the diagram now sees the disciplines and
can follow the pointer to the canonical rule text.

Verification:
- broken-link guard on README + dev-loop.md: exit 0
- SVG renders without overlap (rect extended, footer pushed down,
  viewBox grown by 45px to match)

Co-authored-by: Claude Opus 4.7 <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