Skip to content

chore(specs): retire 45 completed design specs to executable tests#43

Merged
darko-mijic merged 3 commits intomainfrom
spec-consolidation
Apr 2, 2026
Merged

chore(specs): retire 45 completed design specs to executable tests#43
darko-mijic merged 3 commits intomainfrom
spec-consolidation

Conversation

@darko-mijic
Copy link
Copy Markdown
Contributor

@darko-mijic darko-mijic commented Apr 2, 2026

Summary

Retire all 45 completed design-level specs by transferring their value to executable test specs. Design specs are ephemeral construction documents — once implementation is complete, the executable spec (which runs as automated tests) is the canonical source of truth.

Execution: 45 sequential Opus 4.6 agent deployments in a single session, each performing:

  1. Read spec tags (pattern name, phase, depends-on)
  2. Identify primary test file (broadest behavioral coverage)
  3. Transfer canonical @architect-pattern name to test file
  4. Transfer @architect-phase and @architect-depends-on
  5. Link sibling test files via @architect-implements
  6. Delete spec file and associated stubs
  7. Verify test suite passes

What's preserved in executable specs

  • Canonical pattern names (pattern graph identity intact)
  • Phase assignments (timeline views, phase analytics)
  • Dependency relationships (dependency graph integrity)
  • Feature description narratives (generated docs, context assembly)
  • All Rule blocks and scenarios (already in test files)

What's dropped (planning-only metadata)

  • @architect-effort, @architect-priority, @architect-release
  • @architect-business-value, @architect-completed
  • Background: Deliverables table (the implementation IS the deliverable)
  • **Input:** / **Output:** declarations (now in implementation code)

Metrics

Metric Value
Specs retired 45 (69 → 24 remaining)
Test files modified 51
Stub files deleted ~24
Tests passing 8,808
Test failures 0
Pattern graph patterns 333
Completion percentage 68% (was 66%)
Agent deployments 45 sequential
Time per migration ~35-60 seconds

After this PR

  • architect/specs/ contains only roadmap and active specs (24 files)
  • architect/stubs/ contains only active pattern stubs (1 directory)
  • architect/decisions/ is untouched (6 ADRs, permanent records)
  • tests/features/ is the canonical home for all completed pattern metadata
  • Pattern graph retains the same canonical names, now sourced from executable specs

Test plan

  • pnpm build — TypeScript compiles
  • pnpm test — 8,808 tests pass
  • pnpm architect:query -- overview — 333 patterns, 68% complete
  • pnpm architect:query -- arch dangling — 57 refs (fewer than baseline 65)
  • pnpm architect:query -- arch blocking — 2 pre-existing blockers only
  • Spot-check: ProcessGuardLinter sources from tests/features/validation/process-guard.feature
  • Spot-check: ShapeExtraction sources from tests/features/extractor/shape-extraction-types.feature
  • Spot-check: rules --pattern ProcessGuardLinter extracts 6 rules with invariants
  • Process Guard pre-commit hook passes (validates all 54 modified files)

Summary by CodeRabbit

  • Documentation

    • Removed many legacy specification documents and consolidated their guidance into the integrated test corpus to reduce duplication and clarify scope.
  • Tests

    • Updated test metadata, tags and feature mappings to reflect the consolidated specification targets and phases.
  • Refactor

    • Reorganized specification surface for maintainability; no runtime behavior or public APIs were changed.

… executable tests

Consolidate completed planning/design specs into their executable test counterparts.
For each retired spec, the primary test file inherits the canonical @architect-pattern
name, @architect-phase, and @architect-depends-on tags. Design-level metadata (effort,
priority, release, business-value, deliverables table) is dropped — these are historical
planning artifacts with no ongoing value for completed patterns.

Migration mechanics (per spec):
- Primary test file promoted to canonical pattern name
- Sibling test files linked via @architect-implements
- Feature description narrative transferred where missing
- Spec file deleted from architect/specs/
- Stubs deleted from architect/stubs/

Results:
- 45 specs retired (69 → 24 remaining: roadmap + active only)
- 51 test files modified (received canonical names + metadata)
- ~24 stub files deleted across ~10 directories
- 8,808 tests passing, zero failures
- Pattern graph integrity preserved (canonical names, deps, phases intact)
- 45 sequential Opus 4.6 agent deployments, ~35-60s each

Remaining in architect/specs/: 24 roadmap/active specs awaiting implementation.
Remaining in architect/stubs/: 1 directory (mcp-server-integration, active pattern).
architect/decisions/: 6 ADRs untouched (permanent records).

This validates the ephemeral design spec principle: design specs guide implementation,
then their value transfers to executable specs. The executable spec IS the living
documentation — it runs in CI and can never go stale.
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 2, 2026

📝 Walkthrough

Walkthrough

Deletes many architect/specs/*.feature specification files and migrates those commitments into test feature metadata by updating @architect-* tags across numerous tests/features/* files; also updates a PoC fixture path, removes a few @architect comment annotations, and small metadata formatting tweaks.

Changes

Cohort / File(s) Summary
Deleted specification files
architect/specs/*.feature
Removed many BDD/spec files across architecture diagrams, codecs, CLI, data-API, doc-generation, linting, extraction, validation, workflows, and related specs — all acceptance criteria and narratives deleted.
Test feature metadata — architecture, diagrams, codecs, docs
tests/features/behavior/architecture-diagrams/*, tests/features/behavior/codecs/*, tests/features/behavior/codecs/*, tests/features/behavior/pattern-relationships/*, tests/features/behavior/codecs/*
Retargeted @architect-pattern / @architect-implements, added @architect-phase / @architect-depends-on, and migrated Problem/Solution prose from deleted specs into feature headers.
Test feature metadata — API / data / CLI / generators
tests/features/api/**/*.feature, tests/features/cli/*.feature, tests/features/generators/*, tests/features/doc-generation/*
Mapped spec intents into test metadata (DataAPI*, PatternGraph*, CLI reference, generator migration, doc-generation phases); updated statuses to completed where applicable and added phase/dependency annotations.
Test feature metadata — extraction, lint, scanner, types, validation
tests/features/extractor/*, tests/features/lint/*, tests/features/scanner/*, tests/features/types/*, tests/features/validation/*, tests/features/config/*
Aligned tests with deleted spec responsibilities (ShapeExtraction, GherkinRulesSupport, StepLint, TypeScriptTaxonomyImplementation, PhaseStateMachine, ConfigBasedWorkflowDefinition) by adding/adjusting @architect-* tags and prose.
Updated test fixtures & steps
tests/fixtures/doc-generation/poc-decision-document.feature, tests/steps/doc-generation/poc-integration.steps.ts
Removed @architect tag from fixture and redirected references; test step now points PoC path to tests/fixtures/doc-generation/poc-decision-document.feature.
Minor source annotations
src/cli/cli-schema.ts, src/generators/built-in/cli-recipe-generator.ts
Removed/adjusted @architect comment metadata lines only; no runtime code changes.
Test header/value formatting tweaks
many tests/features/** (various files)
Standardized formatting (removed surrounding quotes from @architect-unlock-reason and similar metadata), and small tag additions/removals across many feature headers.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐇 I hopped through specs both near and far,
nibbling directives, stitching tests where they are.
Prose migrated, tags aligned with care,
fixtures redirected, metadata laid bare.
A tidy burrow of tests — nibble, hop, hooray! 🥕

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and accurately summarizes the primary change: retiring 45 completed design specs by transferring them into executable tests.

✏️ 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 spec-consolidation

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@darko-mijic
Copy link
Copy Markdown
Contributor Author

@nikolaglumac

★ Insight ─────────────────────────────────────
Complete execution summary:
- 45 design specs retired in a single session with 45 sequential Opus 4.6 agent deployments
- 123 files changed (70 deletions, 53 modifications, +497/-15,610 lines)
- 8,808 tests pass — zero regressions throughout the entire migration
- Pattern graph integrity preserved — 333 patterns, 68% completion, canonical names survive
- All pre-commit hooks pass — Process Guard validated all 54 modified files + 69 deletions
- Pre-push hooks pass — full test suite ran twice during push, both green

The PR validates the ephemeral design spec principle formalized in §08: design specs guide implementation, then their value transfers to executable specs. The executable spec IS the
living documentation — it runs in CI and can never go stale.
───────────────────────────────────────────────── 

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 9

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
tests/features/behavior/architecture-diagrams/component-diagram.feature (1)

145-147: ⚠️ Potential issue | 🟡 Minor

Minor grammatical issue: "bounded context" should be plural.

The expected output text should use the plural form for consistency.

Proposed fix
       Then the document contains elements:
         | text                      |
         | ## Overview               |
         | 3 key components          |
-        | 2 bounded context         |
+        | 2 bounded contexts        |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@tests/features/behavior/architecture-diagrams/component-diagram.feature`
around lines 145 - 147, Update the grammar in the feature table row that
currently reads "2 bounded context" to use the plural form "2 bounded contexts"
so the expected output is consistent; locate the string in
tests/features/behavior/architecture-diagrams/component-diagram.feature within
the table block containing "## Overview" and change "2 bounded context" to "2
bounded contexts".
tests/features/doc-generation/poc-integration.feature (1)

10-18: 🧹 Nitpick | 🔵 Trivial

Consider adding structured description headers for consistency.

The new description paragraph (lines 10-12) provides good context but doesn't follow the **Problem/Solution**, **Business Value/How It Works**, or **Context/Approach** header patterns specified in coding guidelines. The first file (index-codec.feature) uses **Problem:** / **Solution:** headers.

For consistency across the codebase:

♻️ Suggested structured format
-  This decision establishes the pattern for generating technical documentation
-  from annotated source files. It serves as both the DECISION (why/how) and
-  the PROOF OF CONCEPT (demonstrating the pattern works).
+  **Context:**
+  This decision establishes the pattern for generating technical documentation
+  from annotated source files.
+
+  **Approach:**
+  It serves as both the DECISION (why/how) and the PROOF OF CONCEPT
+  (demonstrating the pattern works).

As per coding guidelines: "Feature description sections must use Problem/Solution, Business Value/How It Works, or Context/Approach header patterns for documentation richness."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@tests/features/doc-generation/poc-integration.feature` around lines 10 - 18,
The feature description in poc-integration.feature is freeform and must be
converted to the repository's structured header pattern for consistency; update
the top description to use one of the approved header groups (for example
**Problem:** / **Solution:** or **Context/Approach** and **Business Value/How It
Works**) mirroring the style used in index-codec.feature, ensuring each
paragraph is prefixed with the chosen header and that the content from the
existing lines (the decision, proof-of-concept, and validation details) is
redistributed into the appropriate headers.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@tests/features/behavior/codecs/composite-codec.feature`:
- Around line 11-17: The feature intro currently uses unstructured prose; update
the opening description in composite-codec.feature to use one of the required
header pairs (e.g., "Problem" / "Solution" or "Context" / "Approach") instead of
free-form text: split the current paragraph into a short "Problem" section
describing the need for architect-include and a concise "Solution" section
describing how the include tag routes content to named documents and is
additive, keeping the existing wording about many-to-many relationships and the
include tag but reflowed under the chosen headers to comply with the repo's
feature description pattern.

In `@tests/features/behavior/codecs/reference-codec-core.feature`:
- Line 5: The tag `@architect-unlock-reason` currently uses single quotes around
its value ('Split-from-original'); remove the surrounding single quotes so the
tag reads `@architect-unlock-reason`:Split-from-original to match other feature
files and avoid parsing inconsistencies—look for the tag string in the feature
file and update it accordingly.

In `@tests/features/cli/pattern-graph-cli-core.feature`:
- Around line 10-20: Update the feature file's problem/solution wording to
remove ambiguity about completion: in the Solution section replace "Add a CLI
command `pnpm architect:query` that exposes..." with either past tense ("Added a
CLI command `pnpm architect:query` that exposes...") or present tense ("The CLI
command `pnpm architect:query` exposes..."); ensure the Solution header clearly
states the command is implemented to match the test scenarios and keep
references to the PatternGraphAPI and output formats (JSON and text) intact so
readers know the command is available for use.

In `@tests/features/cli/validate-patterns.feature`:
- Around line 12-17: Remove the literal `@prefix/`@architect-implements token from
the feature description prose in the validate-patterns.feature scenario (the
narrative around line mentioning `@architect-implements`); reword the sentence to
convey the concept without using the tag syntax (e.g., say "architect implements
relationships" or "implements relationship links" instead of
"@architect-implements") so the Gherkin parser won't interpret it as a tag while
preserving the original meaning.

In `@tests/features/config/config-loader.feature`:
- Around line 2-7: The feature file's pattern tag is incorrect: replace the
`@architect-pattern` value "ConfigBasedWorkflowDefinition" with the matching
pattern for this spec (e.g., "ConfigLoader") so the executable coverage for
ConfigLoader aligns with the pattern tag; update the decorator line that
contains `@architect-pattern`:ConfigBasedWorkflowDefinition to
`@architect-pattern`:ConfigLoader (or remove the tag if policy requires) so the
file's metadata matches the behavior exercised by the scenarios referencing
ConfigLoader.
- Around line 16-31: Remove the out-of-scope "Problem/Solution" block (lines
describing loadDefaultWorkflow()/workflow-loader.ts and inlining default
workflow) from the feature narrative so the feature focuses only on config
discovery, loading, and error formatting; ensure the file mentions only
behaviors under test (repo-root stopping at .git, fallback to libar-generic
preset, and config error formatting) and move any implementation notes about
loadDefaultWorkflow, workflow-loader.ts, and loadWorkflowFromPath into an
implementation doc or a separate developer note outside
tests/features/**/*.feature.

In `@tests/features/extractor/declaration-level-shape-tagging.feature`:
- Around line 12-13: Fix the duplicated word "The the" in the Problem narrative
of the feature file
tests/features/extractor/declaration-level-shape-tagging.feature by editing the
Problem section to remove the extra "the" so the sentence reads correctly;
ensure the surrounding text that mentions the `architect-extract-shapes` tag and
the reference doc config `shapeSelectors` remains unchanged.

In `@tests/features/lint/step-lint.feature`:
- Line 14: The test contains a misspelled runtime error name
"StepAbleUnknowStepError"; update it to the correct spelling
"StepAbleUnknownStepError" wherever referenced in the feature (and any related
step definitions or assertions) so logs/tests match the real runtime error class
name; search for the symbol StepAbleUnknowStepError and replace with
StepAbleUnknownStepError in the feature and any test helpers or expectations
that reference it.

In `@tests/features/scanner/gherkin-parser.feature`:
- Around line 11-19: Replace the plain bullet list in the Feature description
with a required header-style section (e.g., "Business Value/How It Works" or
"Context/Approach") and move the bullets under that header so the descriptive
block uses one of the allowed patterns (Problem/Solution, Business Value/How It
Works, or Context/Approach); update the existing block that lists Rule, Rule
descriptions, DataTables, DocStrings and Infrastructure changes to be a single
titled section using the chosen header pattern and keep the same points as
sub‑bullets under that header.

---

Outside diff comments:
In `@tests/features/behavior/architecture-diagrams/component-diagram.feature`:
- Around line 145-147: Update the grammar in the feature table row that
currently reads "2 bounded context" to use the plural form "2 bounded contexts"
so the expected output is consistent; locate the string in
tests/features/behavior/architecture-diagrams/component-diagram.feature within
the table block containing "## Overview" and change "2 bounded context" to "2
bounded contexts".

In `@tests/features/doc-generation/poc-integration.feature`:
- Around line 10-18: The feature description in poc-integration.feature is
freeform and must be converted to the repository's structured header pattern for
consistency; update the top description to use one of the approved header groups
(for example **Problem:** / **Solution:** or **Context/Approach** and **Business
Value/How It Works**) mirroring the style used in index-codec.feature, ensuring
each paragraph is prefixed with the chosen header and that the content from the
existing lines (the decision, proof-of-concept, and validation details) is
redistributed into the appropriate headers.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: c587bf53-ab77-4866-8e6f-2c65a80a8dc6

📥 Commits

Reviewing files that changed from the base of the PR and between 2b6d6b7 and 373da6d.

⛔ Files ignored due to path filters (25)
  • architect/stubs/DataAPIDesignSessionSupport/handoff-generator.ts is excluded by none and included by none
  • architect/stubs/DataAPIDesignSessionSupport/scope-validator.ts is excluded by none and included by none
  • architect/stubs/cli-recipe-codec/cli-recipe-generator.ts is excluded by none and included by none
  • architect/stubs/cli-recipe-codec/recipe-data.ts is excluded by none and included by none
  • architect/stubs/cli-recipe-codec/recipe-schema.ts is excluded by none and included by none
  • architect/stubs/config-based-workflow-definition/default-workflow-config.ts is excluded by none and included by none
  • architect/stubs/data-api-architecture-queries/arch-queries.ts is excluded by none and included by none
  • architect/stubs/data-api-architecture-queries/coverage-analyzer.ts is excluded by none and included by none
  • architect/stubs/data-api-context-assembly/context-assembler.ts is excluded by none and included by none
  • architect/stubs/data-api-context-assembly/context-formatter.ts is excluded by none and included by none
  • architect/stubs/data-api-output-shaping/fuzzy-match.ts is excluded by none and included by none
  • architect/stubs/data-api-output-shaping/output-pipeline.ts is excluded by none and included by none
  • architect/stubs/data-api-output-shaping/summarize.ts is excluded by none and included by none
  • architect/stubs/data-api-stub-integration/stub-resolver.ts is excluded by none and included by none
  • architect/stubs/enhanced-index-generation/index-codec-options.ts is excluded by none and included by none
  • architect/stubs/enhanced-index-generation/index-codec.ts is excluded by none and included by none
  • architect/stubs/enhanced-index-generation/index-preamble-config.ts is excluded by none and included by none
  • architect/stubs/error-guide-codec/convention-annotation-example.ts is excluded by none and included by none
  • architect/stubs/error-guide-codec/enhanced-validation-options.ts is excluded by none and included by none
  • architect/stubs/error-guide-codec/error-guide-config.ts is excluded by none and included by none
  • architect/stubs/procedural-guide-codec/annotation-guide-preamble.ts is excluded by none and included by none
  • architect/stubs/procedural-guide-codec/load-preamble.ts is excluded by none and included by none
  • architect/stubs/procedural-guide-codec/procedural-codec-options.ts is excluded by none and included by none
  • architect/stubs/procedural-guide-codec/procedural-codec.ts is excluded by none and included by none
  • architect/stubs/procedural-guide-codec/session-guide-preamble.ts is excluded by none and included by none
📒 Files selected for processing (98)
  • architect/specs/architecture-diagram-advanced.feature
  • architect/specs/architecture-diagram-core.feature
  • architect/specs/architecture-doc-refactoring.feature
  • architect/specs/claude-module-generation.feature
  • architect/specs/cli-recipe-codec.feature
  • architect/specs/cli-reference-generation.feature
  • architect/specs/codec-driven-reference-generation.feature
  • architect/specs/config-based-workflow-definition.feature
  • architect/specs/cross-cutting-document-inclusion.feature
  • architect/specs/data-api-architecture-queries.feature
  • architect/specs/data-api-cli-ergonomics.feature
  • architect/specs/data-api-context-assembly.feature
  • architect/specs/data-api-output-shaping.feature
  • architect/specs/data-api-platform-integration.feature
  • architect/specs/data-api-session-support.feature
  • architect/specs/data-api-stub-integration.feature
  • architect/specs/declaration-level-shape-tagging.feature
  • architect/specs/docs-consolidation-strategy.feature
  • architect/specs/docs-live-consolidation.feature
  • architect/specs/enhanced-index-generation.feature
  • architect/specs/error-guide-codec.feature
  • architect/specs/generated-doc-quality.feature
  • architect/specs/gherkin-patterns-restructure.feature
  • architect/specs/gherkin-rules-support.feature
  • architect/specs/mvp-workflow-implementation.feature
  • architect/specs/orchestrator-pipeline-factory-migration.feature
  • architect/specs/pattern-graph-api-cli.feature
  • architect/specs/pattern-graph-api-relationship-queries.feature
  • architect/specs/pattern-graph-layered-extraction.feature
  • architect/specs/pattern-relationship-model.feature
  • architect/specs/phase-state-machine.feature
  • architect/specs/procedural-guide-codec.feature
  • architect/specs/process-guard-linter.feature
  • architect/specs/publishing-relocation.feature
  • architect/specs/readme-rationalization.feature
  • architect/specs/reference-doc-showcase.feature
  • architect/specs/scoped-architectural-view.feature
  • architect/specs/session-guides-module-source.feature
  • architect/specs/shape-extraction.feature
  • architect/specs/step-lint-extended-rules.feature
  • architect/specs/step-lint-vitest-cucumber.feature
  • architect/specs/typescript-taxonomy-implementation.feature
  • architect/specs/universal-doc-generator-robustness.feature
  • architect/specs/validator-read-model-consolidation.feature
  • src/cli/cli-schema.ts
  • src/generators/built-in/cli-recipe-generator.ts
  • tests/features/api/architecture-queries/arch-queries.feature
  • tests/features/api/context-assembly/context-assembler.feature
  • tests/features/api/context-assembly/context-formatter.feature
  • tests/features/api/output-shaping/fuzzy-match.feature
  • tests/features/api/output-shaping/output-pipeline.feature
  • tests/features/api/output-shaping/pattern-helpers.feature
  • tests/features/api/output-shaping/summarize.feature
  • tests/features/api/pattern-graph-api.feature
  • tests/features/api/session-support/handoff-generator.feature
  • tests/features/api/session-support/scope-validator.feature
  • tests/features/api/stub-integration/stub-resolver.feature
  • tests/features/api/stub-integration/taxonomy-tags.feature
  • tests/features/behavior/architecture-diagrams/arch-index.feature
  • tests/features/behavior/architecture-diagrams/arch-tag-extraction.feature
  • tests/features/behavior/architecture-diagrams/component-diagram.feature
  • tests/features/behavior/architecture-diagrams/generator-registration.feature
  • tests/features/behavior/architecture-diagrams/layered-diagram.feature
  • tests/features/behavior/cli/cli-reference.feature
  • tests/features/behavior/codecs/composite-codec.feature
  • tests/features/behavior/codecs/generated-doc-quality.feature
  • tests/features/behavior/codecs/reference-codec-core.feature
  • tests/features/behavior/codecs/reference-codec-diagram-types.feature
  • tests/features/behavior/codecs/reference-generators.feature
  • tests/features/behavior/pattern-relationships/implements-tag.feature
  • tests/features/cli/data-api-help.feature
  • tests/features/cli/pattern-graph-cli-core.feature
  • tests/features/cli/validate-patterns.feature
  • tests/features/config/config-loader.feature
  • tests/features/doc-generation/architecture-doc-refactoring.feature
  • tests/features/doc-generation/index-codec.feature
  • tests/features/doc-generation/poc-integration.feature
  • tests/features/doc-generation/robustness-integration.feature
  • tests/features/doc-generation/validation-rules-codec.feature
  • tests/features/extractor/declaration-level-shape-tagging.feature
  • tests/features/extractor/dual-source-extraction.feature
  • tests/features/extractor/shape-extraction-rendering.feature
  • tests/features/extractor/shape-extraction-types.feature
  • tests/features/generators/business-rules-codec.feature
  • tests/features/generators/orchestrator.feature
  • tests/features/lint/step-lint-extended.feature
  • tests/features/lint/step-lint.feature
  • tests/features/poc/rule-keyword-poc.feature
  • tests/features/scanner/gherkin-parser.feature
  • tests/features/types/deliverable-status.feature
  • tests/features/types/normalized-status.feature
  • tests/features/types/tag-registry-builder.feature
  • tests/features/validation/fsm-validator.feature
  • tests/features/validation/process-guard.feature
  • tests/features/validation/status-transition-detection.feature
  • tests/features/validation/workflow-config-schemas.feature
  • tests/fixtures/doc-generation/poc-decision-document.feature
  • tests/steps/doc-generation/poc-integration.steps.ts
💤 Files with no reviewable changes (46)
  • src/generators/built-in/cli-recipe-generator.ts
  • architect/specs/docs-live-consolidation.feature
  • architect/specs/docs-consolidation-strategy.feature
  • src/cli/cli-schema.ts
  • architect/specs/data-api-architecture-queries.feature
  • architect/specs/phase-state-machine.feature
  • architect/specs/data-api-output-shaping.feature
  • architect/specs/architecture-diagram-advanced.feature
  • architect/specs/declaration-level-shape-tagging.feature
  • architect/specs/pattern-relationship-model.feature
  • architect/specs/step-lint-extended-rules.feature
  • architect/specs/data-api-cli-ergonomics.feature
  • architect/specs/mvp-workflow-implementation.feature
  • architect/specs/data-api-platform-integration.feature
  • architect/specs/readme-rationalization.feature
  • architect/specs/architecture-diagram-core.feature
  • architect/specs/procedural-guide-codec.feature
  • architect/specs/pattern-graph-api-cli.feature
  • architect/specs/data-api-session-support.feature
  • architect/specs/generated-doc-quality.feature
  • architect/specs/data-api-context-assembly.feature
  • architect/specs/cli-recipe-codec.feature
  • architect/specs/validator-read-model-consolidation.feature
  • architect/specs/data-api-stub-integration.feature
  • architect/specs/error-guide-codec.feature
  • architect/specs/cross-cutting-document-inclusion.feature
  • architect/specs/reference-doc-showcase.feature
  • architect/specs/session-guides-module-source.feature
  • architect/specs/gherkin-rules-support.feature
  • architect/specs/config-based-workflow-definition.feature
  • architect/specs/claude-module-generation.feature
  • architect/specs/architecture-doc-refactoring.feature
  • architect/specs/orchestrator-pipeline-factory-migration.feature
  • architect/specs/gherkin-patterns-restructure.feature
  • architect/specs/pattern-graph-api-relationship-queries.feature
  • architect/specs/publishing-relocation.feature
  • architect/specs/enhanced-index-generation.feature
  • architect/specs/typescript-taxonomy-implementation.feature
  • architect/specs/codec-driven-reference-generation.feature
  • architect/specs/pattern-graph-layered-extraction.feature
  • architect/specs/process-guard-linter.feature
  • architect/specs/scoped-architectural-view.feature
  • architect/specs/cli-reference-generation.feature
  • architect/specs/universal-doc-generator-robustness.feature
  • architect/specs/shape-extraction.feature
  • architect/specs/step-lint-vitest-cucumber.feature

- Remove single quotes from @architect-unlock-reason tag values across
  14 test files (§03 tag syntax: values use no quotes in Gherkin format)
- Remove @ prefix from architect-implements in feature description prose
  (validate-patterns.feature — forbidden per authoring guidelines)
- Fix "The the" duplicated word in declaration-level-shape-tagging.feature
- Drop Background: Deliverables section from arch-queries.feature and its
  step definition (§08: deliverables table dropped during value transfer,
  implementation IS the deliverable)
Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (1)
tests/features/cli/pattern-graph-cli-core.feature (1)

19-20: 🧹 Nitpick | 🔵 Trivial

Use present/past tense in Solution text to match completed status.

Line 19 still reads as planned work (“Add a CLI command...”) while the feature is @architect-status:completed. This was already raised earlier; recommend rephrasing to present/past tense for consistency.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@tests/features/cli/pattern-graph-cli-core.feature` around lines 19 - 20,
Update the feature description line that currently reads "Add a CLI command
`pnpm architect:query`..." to past or present tense to match the
`@architect-status`:completed tag; for example change it to "Added a CLI command
`pnpm architect:query` that exposes key PatternGraphAPI methods with JSON and
text output formats, enabling direct programmatic access from AI sessions."
Ensure the exact phrase "pnpm architect:query" and mentions of "JSON and text
output formats" remain unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@tests/features/extractor/declaration-level-shape-tagging.feature`:
- Line 26: Remove the inline `@architect-shape` token from the Feature description
text in declaration-level-shape-tagging.feature (the narrative prose around the
feature title/introduction) so it is not interpreted as an `@prefix/tag`; replace
it with plain wording (e.g., "architect shape" or "the architect-shape
annotation") or move the tag into a Scenario/Examples tags block if you intended
it as a tag, ensuring no `@prefix` tokens appear in the feature description.

---

Duplicate comments:
In `@tests/features/cli/pattern-graph-cli-core.feature`:
- Around line 19-20: Update the feature description line that currently reads
"Add a CLI command `pnpm architect:query`..." to past or present tense to match
the `@architect-status`:completed tag; for example change it to "Added a CLI
command `pnpm architect:query` that exposes key PatternGraphAPI methods with
JSON and text output formats, enabling direct programmatic access from AI
sessions." Ensure the exact phrase "pnpm architect:query" and mentions of "JSON
and text output formats" remain unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: b8779014-ce05-44cc-851c-89b4b2aa94d6

📥 Commits

Reviewing files that changed from the base of the PR and between 373da6d and 62b3e1b.

📒 Files selected for processing (18)
  • tests/features/api/architecture-queries/arch-queries.feature
  • tests/features/behavior/codecs/pr-changes-codec-options.feature
  • tests/features/behavior/codecs/reference-codec-core.feature
  • tests/features/behavior/codecs/reference-codec-detail-rendering.feature
  • tests/features/behavior/codecs/reference-codec-diagram-types.feature
  • tests/features/behavior/codecs/reference-codec-diagrams.feature
  • tests/features/behavior/render-blocks.feature
  • tests/features/cli/pattern-graph-cli-core.feature
  • tests/features/cli/pattern-graph-cli-modifiers-rules.feature
  • tests/features/cli/pattern-graph-cli-subcommands.feature
  • tests/features/cli/validate-patterns.feature
  • tests/features/extractor/declaration-level-shape-tagging.feature
  • tests/features/extractor/shape-extraction-rendering.feature
  • tests/features/lint/lint-rules-individual.feature
  • tests/features/scanner/ast-parser-exports.feature
  • tests/features/scanner/ast-parser-metadata.feature
  • tests/features/scanner/ast-parser-relationships-edges.feature
  • tests/steps/api/architecture-queries/arch-queries.steps.ts

Same class of fix as the previous commit — @ prefix tokens in feature
description text are forbidden per authoring guidelines.
Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (1)
tests/features/extractor/declaration-level-shape-tagging.feature (1)

11-12: ⚠️ Potential issue | 🟡 Minor

Fix duplicated word "The the" in the Problem section.

The typo "The the" remains in the narrative text, impacting readability.

✏️ Proposed fix
-  The current shape extraction system operates at file granularity. The
-  the `architect-extract-shapes` tag on a pattern block extracts named declarations
+  The current shape extraction system operates at file granularity. The
+  `architect-extract-shapes` tag on a pattern block extracts named declarations
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@tests/features/extractor/declaration-level-shape-tagging.feature` around
lines 11 - 12, Fix the duplicated word "The the" in the Problem section by
editing the feature file text to remove the extra "the" so the sentence reads
correctly (e.g., "The current shape extraction system..." or "The current shape
extraction system operates..."), ensuring any references to the
`architect-extract-shapes` tag and "pattern block" remain unchanged; update the
sentence in tests/features/extractor/declaration-level-shape-tagging.feature
where the Problem section contains "The the" so only a single "The" is present.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@tests/features/extractor/declaration-level-shape-tagging.feature`:
- Around line 11-12: Fix the duplicated word "The the" in the Problem section by
editing the feature file text to remove the extra "the" so the sentence reads
correctly (e.g., "The current shape extraction system..." or "The current shape
extraction system operates..."), ensuring any references to the
`architect-extract-shapes` tag and "pattern block" remain unchanged; update the
sentence in tests/features/extractor/declaration-level-shape-tagging.feature
where the Problem section contains "The the" so only a single "The" is present.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 00bc5f6a-a4c6-40e5-9a19-a3201c735a83

📥 Commits

Reviewing files that changed from the base of the PR and between 62b3e1b and f9213ed.

📒 Files selected for processing (1)
  • tests/features/extractor/declaration-level-shape-tagging.feature

@darko-mijic darko-mijic merged commit 86aa024 into main Apr 2, 2026
4 checks passed
@darko-mijic darko-mijic deleted the spec-consolidation branch April 2, 2026 05:18
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