Skip to content

docs: add missing spec.md files for 4 modules#68

Open
corvid-agent wants to merge 1 commit intomainfrom
docs/add-missing-spec-md-files
Open

docs: add missing spec.md files for 4 modules#68
corvid-agent wants to merge 1 commit intomainfrom
docs/add-missing-spec-md-files

Conversation

@corvid-agent
Copy link
Owner

Summary

  • Adds shell.spec.md — documents responsive sidebar layout, dialog semantics, Escape key handling, focus management, and ARIA attributes
  • Adds markdown-editor.spec.md — documents CodeMirror 6 wrapper lifecycle, content syncing, suppressUpdate feedback-loop prevention
  • Adds welcome.spec.md — documents landing page actions (create/import) and navigation behavior
  • Adds app.spec.md — documents root component bootstrap, route configuration (eager shell, lazy welcome/editor), and initial data hydration

All 22 spec files pass bun run spec-check specs/. All 383 unit tests pass.

Closes #63

Test plan

  • bun run spec-check specs/ exits 0 (22 files, 0 errors)
  • bun run test — 383 tests pass across 18 test files
  • CI validates spec-check and build

🤖 Generated with Claude Code

…and root app

Closes #63 — every module now has a corresponding .spec.md file per the
project's spec-driven development constitution. All 22 specs pass validation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@corvid-agent
Copy link
Owner Author

Review: docs: add missing spec.md files for 4 modules

Overall: Looks good — well-structured specs that follow the established conventions and fill in the remaining documentation gaps. CI is all green (build, unit-test, e2e-test, spec-check all pass). A few observations:

Strengths

  • Consistent format — all four specs follow the same frontmatter schema, section ordering, and table conventions as the existing 18 specs
  • Good behavioral coverage — scenarios cover happy paths and edge cases (e.g., cancelled import, zero-result import, identical content no-op in markdown-editor)
  • Error cases documented honestly — calling out unhandled promise rejections (store.loadAll() in app, file.text() in welcome) is useful for future hardening
  • Accessibility details captured — shell spec documents role="dialog", aria-modal, inert, focus management, and aria-expanded, which is exactly what a spec should preserve

Minor observations (non-blocking)

  1. app.spec.md — missing wildcard route behavior: The "Unknown route" scenario says "no route matches (no wildcard/redirect configured)". This is fine as documentation of current behavior, but worth noting this is likely a gap in the app itself (users hitting a typo URL get a blank page). Could be tracked as a follow-up issue.

  2. welcome.spec.md — navigation after import relies on array ordering: Invariant Add client id for GitHub App #3 says "navigates to the last spec in store.allSpecs()". This assumes allSpecs() returns specs in insertion order. If the store ever sorts specs differently, this would break. Not a spec problem per se, but worth keeping in mind.

  3. markdown-editor.spec.mdviewChild.required note: The error case says "viewChild.required guarantees availability" — just noting that viewChild.required throws at runtime if the element is missing, so the "error case" is really an Angular crash. The spec correctly describes this, just wanted to confirm that's intentional documentation.

  4. shell.spec.mddepends_on lists spec-list only: The component also uses Router and NavigationEnd from Angular, but those are correctly documented in the Dependencies table rather than frontmatter depends_on. Consistent with other specs — just confirming the convention is "only local modules in frontmatter".

Verdict

Approve — merge when ready. The specs are accurate, well-organized, and follow project conventions. The minor observations above are informational, not blockers.

🤖 Generated with Claude Code

@corvid-agent
Copy link
Owner Author

⚠️ Auto-merge blocked — security scan failed

Could not retrieve PR diff for security validation

This PR requires manual review before merging.

2 similar comments
@corvid-agent
Copy link
Owner Author

⚠️ Auto-merge blocked — security scan failed

Could not retrieve PR diff for security validation

This PR requires manual review before merging.

@corvid-agent
Copy link
Owner Author

⚠️ Auto-merge blocked — security scan failed

Could not retrieve PR diff for security validation

This PR requires manual review before merging.

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.

docs: add missing spec.md files for 4 modules

1 participant