Repository navigation
docs(api): add sidebar navigation and remove auto-generated notices - #157
Conversation
- Add left sidebar navigation for /api/ pages in VitePress config - Remove auto-generated notices from CLI and extraction-config docs - Notices are developer-facing, not user-facing - cleaner UX Fixes #154 Co-Authored-By: Claude Opus 4.5 <[email protected]>
|
Note Other AI code review bot(s) detectedCodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review. 📝 WalkthroughWalkthroughReplaces API doc links to reference paths, removes several auto-generated banners from docs and generators, and extends extraction-config schema/docs and the schema doc generator to support Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. 📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro ⛔ Files ignored due to path filters (86)
📒 Files selected for processing (4)
🧰 Additional context used📓 Path-based instructions (2)**/*.{js,mjs,ts,tsx,json}📄 CodeRabbit inference engine (CLAUDE.md)
Files:
package.json📄 CodeRabbit inference engine (CLAUDE.md)
Files:
🧠 Learnings (26)📓 Common learnings📚 Learning: 2026-01-02T11:58:27.018ZApplied to files:
📚 Learning: 2026-01-08T17:19:17.148ZApplied to files:
📚 Learning: 2026-01-08T22:20:13.250ZApplied to files:
📚 Learning: 2026-01-08T22:20:13.250ZApplied to files:
📚 Learning: 2026-01-08T22:20:13.250ZApplied to files:
📚 Learning: 2026-01-08T17:19:17.148ZApplied to files:
📚 Learning: 2026-01-08T22:20:13.250ZApplied to files:
📚 Learning: 2026-01-06T23:01:34.751ZApplied to files:
📚 Learning: 2026-01-08T19:36:17.306ZApplied to files:
📚 Learning: 2026-01-08T17:19:17.148ZApplied to files:
📚 Learning: 2026-01-08T17:19:17.148ZApplied to files:
📚 Learning: 2026-01-08T17:19:17.148ZApplied to files:
📚 Learning: 2026-01-08T07:05:01.766ZApplied to files:
📚 Learning: 2026-01-08T07:05:01.766ZApplied to files:
📚 Learning: 2026-01-11T23:03:06.868ZApplied to files:
📚 Learning: 2026-01-08T12:57:19.167ZApplied to files:
📚 Learning: 2026-01-13T11:37:59.334ZApplied to files:
📚 Learning: 2026-01-08T19:36:17.306ZApplied to files:
📚 Learning: 2026-01-08T19:36:17.306ZApplied to files:
📚 Learning: 2026-01-08T17:19:17.148ZApplied to files:
📚 Learning: 2026-01-13T11:37:59.334ZApplied to files:
📚 Learning: 2026-01-08T19:36:17.306ZApplied to files:
📚 Learning: 2026-01-13T11:37:59.334ZApplied to files:
📚 Learning: 2026-01-13T11:37:59.334ZApplied to files:
📚 Learning: 2026-01-02T17:46:32.292ZApplied to files:
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
🔇 Additional comments (6)
✏️ Tip: You can disable this entire section by setting Comment |
PR Compliance Guide 🔍Below is a summary of compliance checks for this PR:
Compliance status legend🟢 - Fully Compliant🟡 - Partial Compliant 🔴 - Not Compliant ⚪ - Requires Further Human Verification 🏷️ - Compliance label |
||||||||||||||||||||||||||||
Deploying living-architecture with
|
| Latest commit: |
64f676c
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://8a86f9b3.living-architecture.pages.dev |
| Branch Preview URL: | https://issue-154-fix-documentation.living-architecture.pages.dev |
PR Code Suggestions ✨Explore these optional code suggestions:
|
||||||||||||
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (3)
packages/riviere-cli/docs/generated/cli-reference.mdis excluded by!**/generated/**packages/riviere-extract-config/docs/generated/predicates.mdis excluded by!**/generated/**packages/riviere-extract-config/docs/generated/schema.mdis excluded by!**/generated/**
📒 Files selected for processing (6)
apps/docs/.vitepress/config.tsapps/docs/reference/cli/cli-reference.mdapps/docs/reference/extraction-config/predicates.mdapps/docs/reference/extraction-config/schema.mdpackages/riviere-cli/scripts/generate-docs.tspackages/riviere-extract-config/scripts/generate-docs.ts
💤 Files with no reviewable changes (4)
- apps/docs/reference/extraction-config/predicates.md
- packages/riviere-cli/scripts/generate-docs.ts
- apps/docs/reference/cli/cli-reference.md
- packages/riviere-extract-config/scripts/generate-docs.ts
🧰 Additional context used
🧠 Learnings (13)
📚 Learning: 2026-01-02T11:58:27.018Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-cli/CLAUDE.md:0-0
Timestamp: 2026-01-02T11:58:27.018Z
Learning: After modifying CLI commands, run `nx generate-docs riviere-cli` to regenerate CLI reference documentation
Applied to files:
apps/docs/.vitepress/config.ts
📚 Learning: 2026-01-14T00:09:27.486Z
Learnt from: NTCoding
Repo: NTCoding/living-architecture PR: 156
File: packages/riviere-extract-config/src/types.ts:71-75
Timestamp: 2026-01-14T00:09:27.486Z
Learning: In packages/riviere-extract-config/src/types.ts, the ExtractionConfig interface represents the post-expansion state where all $ref module references have been resolved to ModuleConfig entries. The extraction-config.schema.json allows both ModuleConfig and ModuleRef in the modules array because it validates raw input before expandModuleRefs runs, but after expansion, modules are always ModuleConfig[], so the TypeScript type correctly models this expanded state.
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-06T23:01:34.751Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-extract-config/CLAUDE.md:0-0
Timestamp: 2026-01-06T23:01:34.751Z
Learning: Extraction config schemas must define all six required component types per module: api, useCase, domainOp, event, eventHandler, and ui. Unused component types must be explicitly marked with `notUsed: true` rather than omitted
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-08T22:20:13.250Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: docs/architecture/overview.md:0-0
Timestamp: 2026-01-08T22:20:13.250Z
Learning: Applies to docs/architecture/**/*extract*.{json,ts} : Define extraction configuration using the JSON Schema from `living-architecture/riviere-extract-config` DSL
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-06T23:01:34.751Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-extract-config/CLAUDE.md:0-0
Timestamp: 2026-01-06T23:01:34.751Z
Learning: Applies to packages/riviere-extract-config/**/*.ts : Extraction config schema is the source of truth for valid structures. TypeScript types must mirror the schema definition to maintain consistency
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-08T22:20:13.250Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: docs/architecture/overview.md:0-0
Timestamp: 2026-01-08T22:20:13.250Z
Learning: Applies to docs/architecture/**/*extract*.ts : Use `living-architecture/riviere-extract-ts` TypeScript extractor with ts-morph for AST parsing when implementing TypeScript extraction for architecture schema components
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-08T07:05:01.766Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-extract-conventions/CLAUDE.md:0-0
Timestamp: 2026-01-08T07:05:01.766Z
Learning: Import and use the default extraction config from `living-architecture/riviere-extract-conventions/default-config` in extraction tooling to detect all 6 component types
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-08T17:19:17.148Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-extract-ts/CLAUDE.md:0-0
Timestamp: 2026-01-08T17:19:17.148Z
Learning: All extraction rules should come from validated ExtractionConfig provided by riviere-extract-config
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-08T22:20:13.250Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: docs/architecture/overview.md:0-0
Timestamp: 2026-01-08T22:20:13.250Z
Learning: Applies to docs/architecture/**/*extract*.ts : Use the Rivière Builder Node.js library to programmatically construct the schema graph when implementing custom extraction code
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-13T11:37:59.334Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-01-13T11:37:59.334Z
Learning: Extract software architecture from code as living documentation using Riviere schema for flow-based (not structural) architecture
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-08T22:20:13.250Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: docs/architecture/overview.md:0-0
Timestamp: 2026-01-08T22:20:13.250Z
Learning: Applies to docs/architecture/**/*.{ts,tsx} : Apply decorators from `living-architecture/riviere-extract-conventions` to mark all classes as architectural components
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-08T17:19:17.148Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-extract-ts/CLAUDE.md:0-0
Timestamp: 2026-01-08T17:19:17.148Z
Learning: Applies to packages/riviere-extract-ts/**/*.{ts,tsx} : Reject invalid extraction configs at load time, not during extraction phase
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-11T23:03:06.868Z
Learnt from: NTCoding
Repo: NTCoding/living-architecture PR: 130
File: apps/docs/extract/deterministic/typescript/getting-started.md:8-8
Timestamp: 2026-01-11T23:03:06.868Z
Learning: In Markdown documentation files, when stating Node.js requirements, clearly distinguish between the minimum supported version (as per package.json engines) and the recommended/CI-tested version stated in prerequisites. Apply this pattern to similar docs under apps/docs to avoid confusion and maintain consistency across the repository.
Applied to files:
apps/docs/reference/extraction-config/schema.md
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: main
- GitHub Check: browser-tests (webkit)
- GitHub Check: Cloudflare Pages
🔇 Additional comments (3)
apps/docs/reference/extraction-config/schema.md (2)
22-30: Good addition documenting module references.The
moduleRefsection clearly documents the$refpattern for external module definitions, which aligns with the schema's support for modular extraction configs.
51-51: LGTM! NewcustomTypesproperty extends schema flexibility.The addition of
customTypesenables user-defined component types beyond the six built-in types (api, useCase, domainOp, event, eventHandler, ui). Consider adding a cross-reference to documentation explaining the expected structure of custom type definitions if such documentation exists.apps/docs/.vitepress/config.ts (1)
108-135: LGTM! API sidebar structure follows VitePress conventions.The new
/api/sidebar fulfills the PR objective of adding left navigation for API pages. The two-group structure (riviere-builder and riviere-query) is well-organized, and all referenced documentation files exist at the configured paths.
✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.
getTypeString() now correctly renders array items with oneOf (e.g., `(module | moduleRef)[]`) instead of showing `undefined[]`. Co-Authored-By: Claude Opus 4.5 <[email protected]>
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (1)
packages/riviere-extract-config/docs/generated/schema.mdis excluded by!**/generated/**
📒 Files selected for processing (2)
apps/docs/reference/extraction-config/schema.mdpackages/riviere-extract-config/scripts/generate-docs.ts
🧰 Additional context used
📓 Path-based instructions (4)
packages/riviere-extract-config/**/*.ts
📄 CodeRabbit inference engine (packages/riviere-extract-config/CLAUDE.md)
Extraction config schema is the source of truth for valid structures. TypeScript types must mirror the schema definition to maintain consistency
Files:
packages/riviere-extract-config/scripts/generate-docs.ts
**/*.{js,mjs,ts,tsx,json}
📄 CodeRabbit inference engine (CLAUDE.md)
Always use nx commands for build, test, lint operations. Do not run npm/pnpm directly in project folders
Files:
packages/riviere-extract-config/scripts/generate-docs.ts
**/*.{ts,tsx}
📄 CodeRabbit inference engine (CLAUDE.md)
**/*.{ts,tsx}: Use cross-project imports with package names (e.g.,import { X } from '@living-architecture/[pkg-name]'), not relative paths
When adding dependencies between projects, add"@living-architecture/[pkg-name]": "workspace:*"to the consuming project's package.json
Followdocs/conventions/software-design.mdwhen writing, editing, refactoring, or reviewing code
Look for and follow standard implementation patterns defined indocs/conventions/standard-patterns.md
Avoid anti-patterns documented in@docs/conventions/anti-patterns.md
Followdocs/conventions/testing.mdwhen writing tests. 100% test coverage is mandatory and enforced
Files:
packages/riviere-extract-config/scripts/generate-docs.ts
**/*.{ts,tsx,js,jsx}
📄 CodeRabbit inference engine (CLAUDE.md)
**/*.{ts,tsx,js,jsx}: Never commit secrets, API keys, or credentials. Use environment variables for sensitive configuration
Do not log sensitive data (passwords, tokens, PII). Validate and sanitize all external input
Files:
packages/riviere-extract-config/scripts/generate-docs.ts
🧠 Learnings (21)
📚 Learning: 2026-01-14T00:09:27.486Z
Learnt from: NTCoding
Repo: NTCoding/living-architecture PR: 156
File: packages/riviere-extract-config/src/types.ts:71-75
Timestamp: 2026-01-14T00:09:27.486Z
Learning: In packages/riviere-extract-config/src/types.ts, the ExtractionConfig interface represents the post-expansion state where all $ref module references have been resolved to ModuleConfig entries. The extraction-config.schema.json allows both ModuleConfig and ModuleRef in the modules array because it validates raw input before expandModuleRefs runs, but after expansion, modules are always ModuleConfig[], so the TypeScript type correctly models this expanded state.
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-06T23:01:34.751Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-extract-config/CLAUDE.md:0-0
Timestamp: 2026-01-06T23:01:34.751Z
Learning: Extraction config schemas must define all six required component types per module: api, useCase, domainOp, event, eventHandler, and ui. Unused component types must be explicitly marked with `notUsed: true` rather than omitted
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-08T22:20:13.250Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: docs/architecture/overview.md:0-0
Timestamp: 2026-01-08T22:20:13.250Z
Learning: Applies to docs/architecture/**/*extract*.{json,ts} : Define extraction configuration using the JSON Schema from `living-architecture/riviere-extract-config` DSL
Applied to files:
apps/docs/reference/extraction-config/schema.mdpackages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-06T23:01:34.751Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-extract-config/CLAUDE.md:0-0
Timestamp: 2026-01-06T23:01:34.751Z
Learning: Applies to packages/riviere-extract-config/**/*.ts : Extraction config schema is the source of truth for valid structures. TypeScript types must mirror the schema definition to maintain consistency
Applied to files:
apps/docs/reference/extraction-config/schema.mdpackages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-07T08:54:48.071Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: docs/workflow/code-review.md:0-0
Timestamp: 2026-01-07T08:54:48.071Z
Learning: Applies to docs/workflow/**/*.{ts,tsx,js,jsx} : Review usage of `/* v8 ignore next -- preserve */` coverage skip directives. This is only acceptable for unreachable code needed to satisfy the compiler. Most cases should be solved by extracting code or writing tests to mock behavior.
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-10T19:16:48.557Z
Learnt from: NTCoding
Repo: NTCoding/living-architecture PR: 120
File: docs/workflow/parallel-workflow.md:160-281
Timestamp: 2026-01-10T19:16:48.557Z
Learning: In the NTCoding/living-architecture repository, design and investigation documents (such as those in docs/workflow/) can reference scripts, commands, or features that don't yet exist in the codebase. These references serve as specifications for future implementation tasks, not documentation of current capabilities. This is acceptable when the PR scope is research/design rather than implementation.
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-08T07:05:01.766Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-extract-conventions/CLAUDE.md:0-0
Timestamp: 2026-01-08T07:05:01.766Z
Learning: Import and use the default extraction config from `living-architecture/riviere-extract-conventions/default-config` in extraction tooling to detect all 6 component types
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-08T22:20:13.250Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: docs/architecture/overview.md:0-0
Timestamp: 2026-01-08T22:20:13.250Z
Learning: Applies to docs/architecture/**/*extract*.ts : Use `living-architecture/riviere-extract-ts` TypeScript extractor with ts-morph for AST parsing when implementing TypeScript extraction for architecture schema components
Applied to files:
apps/docs/reference/extraction-config/schema.mdpackages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-08T17:19:17.148Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-extract-ts/CLAUDE.md:0-0
Timestamp: 2026-01-08T17:19:17.148Z
Learning: All extraction rules should come from validated ExtractionConfig provided by riviere-extract-config
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-08T22:20:13.250Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: docs/architecture/overview.md:0-0
Timestamp: 2026-01-08T22:20:13.250Z
Learning: Applies to docs/architecture/**/*extract*.ts : Use the Rivière Builder Node.js library to programmatically construct the schema graph when implementing custom extraction code
Applied to files:
apps/docs/reference/extraction-config/schema.mdpackages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-13T11:37:59.334Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-01-13T11:37:59.334Z
Learning: Extract software architecture from code as living documentation using Riviere schema for flow-based (not structural) architecture
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-08T22:20:13.250Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: docs/architecture/overview.md:0-0
Timestamp: 2026-01-08T22:20:13.250Z
Learning: Applies to docs/architecture/**/*.{ts,tsx} : Apply decorators from `living-architecture/riviere-extract-conventions` to mark all classes as architectural components
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-08T17:19:17.148Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-extract-ts/CLAUDE.md:0-0
Timestamp: 2026-01-08T17:19:17.148Z
Learning: Applies to packages/riviere-extract-ts/**/*.{ts,tsx} : Reject invalid extraction configs at load time, not during extraction phase
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-11T23:03:06.868Z
Learnt from: NTCoding
Repo: NTCoding/living-architecture PR: 130
File: apps/docs/extract/deterministic/typescript/getting-started.md:8-8
Timestamp: 2026-01-11T23:03:06.868Z
Learning: In Markdown documentation files, when stating Node.js requirements, clearly distinguish between the minimum supported version (as per package.json engines) and the recommended/CI-tested version stated in prerequisites. Apply this pattern to similar docs under apps/docs to avoid confusion and maintain consistency across the repository.
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-02T11:58:27.018Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-cli/CLAUDE.md:0-0
Timestamp: 2026-01-02T11:58:27.018Z
Learning: After modifying CLI commands, run `nx generate-docs riviere-cli` to regenerate CLI reference documentation
Applied to files:
packages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-08T17:19:17.148Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-extract-ts/CLAUDE.md:0-0
Timestamp: 2026-01-08T17:19:17.148Z
Learning: Applies to packages/riviere-extract-ts/**/*.{ts,tsx} : Use ts-morph for TypeScript AST parsing instead of other parsers
Applied to files:
packages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-08T17:19:17.148Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-extract-ts/CLAUDE.md:0-0
Timestamp: 2026-01-08T17:19:17.148Z
Learning: Applies to packages/riviere-extract-ts/**/*.test.{ts,tsx} : Implement integration tests for end-to-end extraction from TypeScript code to JSON output
Applied to files:
packages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-08T17:19:17.148Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-extract-ts/CLAUDE.md:0-0
Timestamp: 2026-01-08T17:19:17.148Z
Learning: Applies to packages/riviere-extract-ts/**/*.{ts,tsx} : Implement extraction logic as pure functions with no side effects
Applied to files:
packages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-08T07:05:01.766Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-extract-conventions/CLAUDE.md:0-0
Timestamp: 2026-01-08T07:05:01.766Z
Learning: Applies to packages/riviere-extract-conventions/**/*.ts : Use `Custom(type)` decorator to annotate components with custom types not covered by standard decorators
Applied to files:
packages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-08T17:19:17.148Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-extract-ts/CLAUDE.md:0-0
Timestamp: 2026-01-08T17:19:17.148Z
Learning: Applies to packages/riviere-extract-ts/**/*.test.{ts,tsx} : Implement unit tests for each predicate type in isolation with positive and negative cases
Applied to files:
packages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-11T18:47:09.232Z
Learnt from: NTCoding
Repo: NTCoding/living-architecture PR: 129
File: apps/eclair/src/components/SchemaModal/SchemaModal.cssModule.spec.ts:13-19
Timestamp: 2026-01-11T18:47:09.232Z
Learning: Encourage using const for declarations by default in TypeScript/JavaScript files and only use let when a variable must be reassigned. Do not rely on var. This improves immutability and clarity. If a variable needs mutation (e.g., counters in loops, reassigned values), use let, but prefer const whenever possible and refactor reassigned logic to avoid mutations where feasible.
Applied to files:
packages/riviere-extract-config/scripts/generate-docs.ts
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: main
- GitHub Check: Cloudflare Pages
🔇 Additional comments (2)
packages/riviere-extract-config/scripts/generate-docs.ts (1)
90-94: Good fix for theoneOfarray items type rendering.This correctly handles the case where array items are defined with
oneOf(union types), resolving theundefined[]rendering bug discussed in past review comments. The implementation is consistent with how other union types are formatted in the codebase (line 88).apps/docs/reference/extraction-config/schema.md (1)
18-31: Generated output correctly reflects the schema union type.The
modulesfield now properly displays the union type(module | moduleRef)[], resolving the previousundefined[]rendering issue. The newmoduleRefsection is properly documented with the required$refproperty.This aligns with the learned schema behavior where the extraction config supports both inline modules and external module references. Based on learnings, the schema allows both
ModuleConfigandModuleRefin the modules array before expansion.
✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.
…ects getTypeString() now renders `Record<string, T>` for objects with additionalProperties that reference another type (e.g., customTypes now shows `Record<string, detectionRule>` instead of `object`). Co-Authored-By: Claude Opus 4.5 <[email protected]>
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (1)
packages/riviere-extract-config/docs/generated/schema.mdis excluded by!**/generated/**
📒 Files selected for processing (2)
apps/docs/reference/extraction-config/schema.mdpackages/riviere-extract-config/scripts/generate-docs.ts
🧰 Additional context used
📓 Path-based instructions (4)
packages/riviere-extract-config/**/*.ts
📄 CodeRabbit inference engine (packages/riviere-extract-config/CLAUDE.md)
Extraction config schema is the source of truth for valid structures. TypeScript types must mirror the schema definition to maintain consistency
Files:
packages/riviere-extract-config/scripts/generate-docs.ts
**/*.{js,mjs,ts,tsx,json}
📄 CodeRabbit inference engine (CLAUDE.md)
Always use nx commands for build, test, lint operations. Do not run npm/pnpm directly in project folders
Files:
packages/riviere-extract-config/scripts/generate-docs.ts
**/*.{ts,tsx}
📄 CodeRabbit inference engine (CLAUDE.md)
**/*.{ts,tsx}: Use cross-project imports with package names (e.g.,import { X } from '@living-architecture/[pkg-name]'), not relative paths
When adding dependencies between projects, add"@living-architecture/[pkg-name]": "workspace:*"to the consuming project's package.json
Followdocs/conventions/software-design.mdwhen writing, editing, refactoring, or reviewing code
Look for and follow standard implementation patterns defined indocs/conventions/standard-patterns.md
Avoid anti-patterns documented in@docs/conventions/anti-patterns.md
Followdocs/conventions/testing.mdwhen writing tests. 100% test coverage is mandatory and enforced
Files:
packages/riviere-extract-config/scripts/generate-docs.ts
**/*.{ts,tsx,js,jsx}
📄 CodeRabbit inference engine (CLAUDE.md)
**/*.{ts,tsx,js,jsx}: Never commit secrets, API keys, or credentials. Use environment variables for sensitive configuration
Do not log sensitive data (passwords, tokens, PII). Validate and sanitize all external input
Files:
packages/riviere-extract-config/scripts/generate-docs.ts
🧠 Learnings (23)
📚 Learning: 2026-01-14T00:09:27.486Z
Learnt from: NTCoding
Repo: NTCoding/living-architecture PR: 156
File: packages/riviere-extract-config/src/types.ts:71-75
Timestamp: 2026-01-14T00:09:27.486Z
Learning: In packages/riviere-extract-config/src/types.ts, the ExtractionConfig interface represents the post-expansion state where all $ref module references have been resolved to ModuleConfig entries. The extraction-config.schema.json allows both ModuleConfig and ModuleRef in the modules array because it validates raw input before expandModuleRefs runs, but after expansion, modules are always ModuleConfig[], so the TypeScript type correctly models this expanded state.
Applied to files:
apps/docs/reference/extraction-config/schema.mdpackages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-06T23:01:34.751Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-extract-config/CLAUDE.md:0-0
Timestamp: 2026-01-06T23:01:34.751Z
Learning: Extraction config schemas must define all six required component types per module: api, useCase, domainOp, event, eventHandler, and ui. Unused component types must be explicitly marked with `notUsed: true` rather than omitted
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-08T22:20:13.250Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: docs/architecture/overview.md:0-0
Timestamp: 2026-01-08T22:20:13.250Z
Learning: Applies to docs/architecture/**/*extract*.{json,ts} : Define extraction configuration using the JSON Schema from `living-architecture/riviere-extract-config` DSL
Applied to files:
apps/docs/reference/extraction-config/schema.mdpackages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-06T23:01:34.751Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-extract-config/CLAUDE.md:0-0
Timestamp: 2026-01-06T23:01:34.751Z
Learning: Applies to packages/riviere-extract-config/**/*.ts : Extraction config schema is the source of truth for valid structures. TypeScript types must mirror the schema definition to maintain consistency
Applied to files:
apps/docs/reference/extraction-config/schema.mdpackages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-08T17:19:17.148Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-extract-ts/CLAUDE.md:0-0
Timestamp: 2026-01-08T17:19:17.148Z
Learning: Applies to packages/riviere-extract-ts/**/*.{ts,tsx} : Use glob pattern matching for module-based organization of extraction rules
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-07T08:54:48.071Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: docs/workflow/code-review.md:0-0
Timestamp: 2026-01-07T08:54:48.071Z
Learning: Applies to docs/workflow/**/*.{ts,tsx,js,jsx} : Review usage of `/* v8 ignore next -- preserve */` coverage skip directives. This is only acceptable for unreachable code needed to satisfy the compiler. Most cases should be solved by extracting code or writing tests to mock behavior.
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-10T19:16:48.557Z
Learnt from: NTCoding
Repo: NTCoding/living-architecture PR: 120
File: docs/workflow/parallel-workflow.md:160-281
Timestamp: 2026-01-10T19:16:48.557Z
Learning: In the NTCoding/living-architecture repository, design and investigation documents (such as those in docs/workflow/) can reference scripts, commands, or features that don't yet exist in the codebase. These references serve as specifications for future implementation tasks, not documentation of current capabilities. This is acceptable when the PR scope is research/design rather than implementation.
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-08T22:20:13.250Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: docs/architecture/overview.md:0-0
Timestamp: 2026-01-08T22:20:13.250Z
Learning: Applies to docs/architecture/**/*extract*.ts : Use `living-architecture/riviere-extract-ts` TypeScript extractor with ts-morph for AST parsing when implementing TypeScript extraction for architecture schema components
Applied to files:
apps/docs/reference/extraction-config/schema.mdpackages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-08T22:20:13.250Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: docs/architecture/overview.md:0-0
Timestamp: 2026-01-08T22:20:13.250Z
Learning: Applies to docs/architecture/**/*extract*.ts : Use the Rivière Builder Node.js library to programmatically construct the schema graph when implementing custom extraction code
Applied to files:
apps/docs/reference/extraction-config/schema.mdpackages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-11T14:38:35.637Z
Learnt from: NTCoding
Repo: NTCoding/living-architecture PR: 129
File: packages/riviere-cli/src/commands/extract/config-loader.ts:31-39
Timestamp: 2026-01-11T14:38:35.637Z
Learning: In packages/riviere-cli/src/commands/extract/config-loader.ts, the isExtendedConfig type guard intentionally performs minimal validation (checks for non-null object and validates modules is an array if present) because comprehensive validation is handled downstream by the schema validator. The type guard's purpose is basic type narrowing to support both module-array and top-level-rules formats, not comprehensive validation. This follows the layered validation pattern where type guards are minimal and schema validation occurs at system boundaries.
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-08T07:05:01.766Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-extract-conventions/CLAUDE.md:0-0
Timestamp: 2026-01-08T07:05:01.766Z
Learning: Applies to packages/riviere-extract-conventions/**/*.ts : Use `Custom(type)` decorator to annotate components with custom types not covered by standard decorators
Applied to files:
apps/docs/reference/extraction-config/schema.mdpackages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-08T07:05:01.766Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-extract-conventions/CLAUDE.md:0-0
Timestamp: 2026-01-08T07:05:01.766Z
Learning: Import and use the default extraction config from `living-architecture/riviere-extract-conventions/default-config` in extraction tooling to detect all 6 component types
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-08T17:19:17.148Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-extract-ts/CLAUDE.md:0-0
Timestamp: 2026-01-08T17:19:17.148Z
Learning: All extraction rules should come from validated ExtractionConfig provided by riviere-extract-config
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-13T11:37:59.334Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-01-13T11:37:59.334Z
Learning: Extract software architecture from code as living documentation using Riviere schema for flow-based (not structural) architecture
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-08T22:20:13.250Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: docs/architecture/overview.md:0-0
Timestamp: 2026-01-08T22:20:13.250Z
Learning: Applies to docs/architecture/**/*.{ts,tsx} : Apply decorators from `living-architecture/riviere-extract-conventions` to mark all classes as architectural components
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-08T17:19:17.148Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-extract-ts/CLAUDE.md:0-0
Timestamp: 2026-01-08T17:19:17.148Z
Learning: Applies to packages/riviere-extract-ts/**/*.{ts,tsx} : Reject invalid extraction configs at load time, not during extraction phase
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-11T23:03:06.868Z
Learnt from: NTCoding
Repo: NTCoding/living-architecture PR: 130
File: apps/docs/extract/deterministic/typescript/getting-started.md:8-8
Timestamp: 2026-01-11T23:03:06.868Z
Learning: In Markdown documentation files, when stating Node.js requirements, clearly distinguish between the minimum supported version (as per package.json engines) and the recommended/CI-tested version stated in prerequisites. Apply this pattern to similar docs under apps/docs to avoid confusion and maintain consistency across the repository.
Applied to files:
apps/docs/reference/extraction-config/schema.md
📚 Learning: 2026-01-08T23:16:02.639Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: docs/conventions/software-design.md:0-0
Timestamp: 2026-01-08T23:16:02.639Z
Learning: Applies to docs/conventions/**/*.{ts,tsx} : Wrap all primitives and strings. Create value objects, encapsulate validation logic, and make domain concepts explicit.
Applied to files:
packages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-08T17:19:17.148Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-extract-ts/CLAUDE.md:0-0
Timestamp: 2026-01-08T17:19:17.148Z
Learning: Applies to packages/riviere-extract-ts/**/*.{ts,tsx} : Use ts-morph for TypeScript AST parsing instead of other parsers
Applied to files:
packages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-02T17:46:32.292Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: docs/conventions/standard-patterns.md:0-0
Timestamp: 2026-01-02T17:46:32.292Z
Learning: Applies to docs/conventions/**/*.{ts,tsx} : Use Zod for creating branded types
Applied to files:
packages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-08T23:16:02.639Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: docs/conventions/software-design.md:0-0
Timestamp: 2026-01-08T23:16:02.639Z
Learning: Applies to docs/conventions/**/*.{ts,tsx} : Use Zod for runtime validation. In TypeScript, use Zod schemas for parsing external data, API responses, and user input. Type inference from schemas keeps types and validation in sync.
Applied to files:
packages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-02T11:58:27.018Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-cli/CLAUDE.md:0-0
Timestamp: 2026-01-02T11:58:27.018Z
Learning: After modifying CLI commands, run `nx generate-docs riviere-cli` to regenerate CLI reference documentation
Applied to files:
packages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-11T18:47:09.232Z
Learnt from: NTCoding
Repo: NTCoding/living-architecture PR: 129
File: apps/eclair/src/components/SchemaModal/SchemaModal.cssModule.spec.ts:13-19
Timestamp: 2026-01-11T18:47:09.232Z
Learning: Encourage using const for declarations by default in TypeScript/JavaScript files and only use let when a variable must be reassigned. Do not rely on var. This improves immutability and clarity. If a variable needs mutation (e.g., counters in loops, reassigned values), use let, but prefer const whenever possible and refactor reassigned logic to avoid mutations where feasible.
Applied to files:
packages/riviere-extract-config/scripts/generate-docs.ts
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: main
- GitHub Check: Cloudflare Pages
🔇 Additional comments (5)
packages/riviere-extract-config/scripts/generate-docs.ts (2)
33-33: LGTM!The
additionalPropertiestype correctly models JSON Schema's flexibility—it can be either a nested schema object or a boolean (e.g.,falseto disallow extra properties).
91-94: LGTM!The added handling for
oneOfinside array items correctly renders union types with parentheses for proper grouping (e.g.,(module | moduleRef)[]). This addresses the documentation rendering for the updatedmodulesschema.apps/docs/reference/extraction-config/schema.md (3)
18-18: Type rendering fixed.The
modulesfield now correctly displays the union type(module | moduleRef)[], addressing the previously flaggedundefined[]issue. This accurately reflects the schema's support for both inline module definitions and external module references.
22-31: LGTM!The new
moduleRefsection clearly documents the external module reference capability with accurate property information. The description appropriately notes that paths are relative to the config file.
51-51: Record type rendering implemented.The
customTypesproperty now correctly showsRecord<string, detectionRule>instead of a genericobjecttype. This provides users with clear type information about the expected structure. This addresses the past review feedback about improving documentation foradditionalPropertieswith$ref.
✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.
Extract formatArrayType and formatRecordType helpers to reduce getTypeString complexity. Now handles simple typed additionalProperties (e.g., `Record<string, string>` instead of `Record<string, unknown>`). Co-Authored-By: Claude Opus 4.5 <[email protected]>
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In `@packages/riviere-extract-config/scripts/generate-docs.ts`:
- Around line 84-88: The array formatting breaks markdown when items.oneOf is
used because formatOneOfType returns backtick-wrapped alternatives and
formatArrayType then wraps that whole parenthesized string with [] outside the
backticks; fix formatArrayType so it builds a single backtick-wrapped array type
string: call formatOneOfType(items), strip any backticks from its returned
string (and trim), then return a template like `\`${(strippedOneOf)}[]\``; keep
the existing branches for items.$ref (using getRefTypeName) and fallback to
items.type but ensure the final array type is always wrapped in a single pair of
backticks.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (1)
packages/riviere-extract-config/scripts/generate-docs.ts
🧰 Additional context used
📓 Path-based instructions (4)
packages/riviere-extract-config/**/*.ts
📄 CodeRabbit inference engine (packages/riviere-extract-config/CLAUDE.md)
Extraction config schema is the source of truth for valid structures. TypeScript types must mirror the schema definition to maintain consistency
Files:
packages/riviere-extract-config/scripts/generate-docs.ts
**/*.{js,mjs,ts,tsx,json}
📄 CodeRabbit inference engine (CLAUDE.md)
Always use nx commands for build, test, lint operations. Do not run npm/pnpm directly in project folders
Files:
packages/riviere-extract-config/scripts/generate-docs.ts
**/*.{ts,tsx}
📄 CodeRabbit inference engine (CLAUDE.md)
**/*.{ts,tsx}: Use cross-project imports with package names (e.g.,import { X } from '@living-architecture/[pkg-name]'), not relative paths
When adding dependencies between projects, add"@living-architecture/[pkg-name]": "workspace:*"to the consuming project's package.json
Followdocs/conventions/software-design.mdwhen writing, editing, refactoring, or reviewing code
Look for and follow standard implementation patterns defined indocs/conventions/standard-patterns.md
Avoid anti-patterns documented in@docs/conventions/anti-patterns.md
Followdocs/conventions/testing.mdwhen writing tests. 100% test coverage is mandatory and enforced
Files:
packages/riviere-extract-config/scripts/generate-docs.ts
**/*.{ts,tsx,js,jsx}
📄 CodeRabbit inference engine (CLAUDE.md)
**/*.{ts,tsx,js,jsx}: Never commit secrets, API keys, or credentials. Use environment variables for sensitive configuration
Do not log sensitive data (passwords, tokens, PII). Validate and sanitize all external input
Files:
packages/riviere-extract-config/scripts/generate-docs.ts
🧠 Learnings (11)
📚 Learning: 2026-01-06T23:01:34.751Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-extract-config/CLAUDE.md:0-0
Timestamp: 2026-01-06T23:01:34.751Z
Learning: Applies to packages/riviere-extract-config/**/*.ts : Extraction config schema is the source of truth for valid structures. TypeScript types must mirror the schema definition to maintain consistency
Applied to files:
packages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-08T22:20:13.250Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: docs/architecture/overview.md:0-0
Timestamp: 2026-01-08T22:20:13.250Z
Learning: Applies to docs/architecture/**/*extract*.ts : Use `living-architecture/riviere-extract-ts` TypeScript extractor with ts-morph for AST parsing when implementing TypeScript extraction for architecture schema components
Applied to files:
packages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-08T22:20:13.250Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: docs/architecture/overview.md:0-0
Timestamp: 2026-01-08T22:20:13.250Z
Learning: Applies to docs/architecture/**/*extract*.ts : Use the Rivière Builder Node.js library to programmatically construct the schema graph when implementing custom extraction code
Applied to files:
packages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-08T07:05:01.766Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-extract-conventions/CLAUDE.md:0-0
Timestamp: 2026-01-08T07:05:01.766Z
Learning: Applies to packages/riviere-extract-conventions/**/*.ts : Use `Custom(type)` decorator to annotate components with custom types not covered by standard decorators
Applied to files:
packages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-08T22:20:13.250Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: docs/architecture/overview.md:0-0
Timestamp: 2026-01-08T22:20:13.250Z
Learning: Applies to docs/architecture/**/*extract*.{json,ts} : Define extraction configuration using the JSON Schema from `living-architecture/riviere-extract-config` DSL
Applied to files:
packages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-14T00:09:27.486Z
Learnt from: NTCoding
Repo: NTCoding/living-architecture PR: 156
File: packages/riviere-extract-config/src/types.ts:71-75
Timestamp: 2026-01-14T00:09:27.486Z
Learning: In packages/riviere-extract-config/src/types.ts, the ExtractionConfig interface represents the post-expansion state where all $ref module references have been resolved to ModuleConfig entries. The extraction-config.schema.json allows both ModuleConfig and ModuleRef in the modules array because it validates raw input before expandModuleRefs runs, but after expansion, modules are always ModuleConfig[], so the TypeScript type correctly models this expanded state.
Applied to files:
packages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-08T17:19:17.148Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-extract-ts/CLAUDE.md:0-0
Timestamp: 2026-01-08T17:19:17.148Z
Learning: Applies to packages/riviere-extract-ts/**/*.{ts,tsx} : Use ts-morph for TypeScript AST parsing instead of other parsers
Applied to files:
packages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-08T22:20:13.250Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: docs/architecture/overview.md:0-0
Timestamp: 2026-01-08T22:20:13.250Z
Learning: Applies to docs/architecture/**/*.{ts,tsx} : Apply decorators from `living-architecture/riviere-extract-conventions` to mark all classes as architectural components
Applied to files:
packages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-08T23:16:02.639Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: docs/conventions/software-design.md:0-0
Timestamp: 2026-01-08T23:16:02.639Z
Learning: Applies to docs/conventions/**/*.{ts,tsx} : Wrap all primitives and strings. Create value objects, encapsulate validation logic, and make domain concepts explicit.
Applied to files:
packages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-02T11:58:27.018Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-cli/CLAUDE.md:0-0
Timestamp: 2026-01-02T11:58:27.018Z
Learning: After modifying CLI commands, run `nx generate-docs riviere-cli` to regenerate CLI reference documentation
Applied to files:
packages/riviere-extract-config/scripts/generate-docs.ts
📚 Learning: 2026-01-11T18:47:09.232Z
Learnt from: NTCoding
Repo: NTCoding/living-architecture PR: 129
File: apps/eclair/src/components/SchemaModal/SchemaModal.cssModule.spec.ts:13-19
Timestamp: 2026-01-11T18:47:09.232Z
Learning: Encourage using const for declarations by default in TypeScript/JavaScript files and only use let when a variable must be reassigned. Do not rely on var. This improves immutability and clarity. If a variable needs mutation (e.g., counters in loops, reassigned values), use let, but prefer const whenever possible and refactor reassigned logic to avoid mutations where feasible.
Applied to files:
packages/riviere-extract-config/scripts/generate-docs.ts
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: main
- GitHub Check: Cloudflare Pages
🔇 Additional comments (5)
packages/riviere-extract-config/scripts/generate-docs.ts (5)
33-33: LGTM on the interface extension.The
additionalPropertiesfield correctly models JSON Schema's additionalProperties which can be either a schema object or a boolean. This aligns with the schema definition being the source of truth. Based on learnings, extraction config schema is the source of truth and TypeScript types must mirror it.
90-95: LGTM on the Record type helper.The implementation correctly handles both
$refreferences and simple types viaadditionalProperties.type ?? 'unknown', addressing the previous review feedback. The output format`Record<string, T>`is consistent with other type renderings.
104-112: Good refactoring to use helper functions.The delegation to
formatArrayTypeandformatRecordTypeimproves readability and centralizes type formatting logic. The condition on line 110 correctly guards against booleanadditionalPropertiesby checkingtypeof prop.additionalProperties === 'object'.
295-323: Verified: Auto-generated notice removed from predicate reference.The
generatePredicatesReferencefunction now starts directly with the frontmatter and title without the auto-generated banner, aligning with the PR objective to remove notices for cleaner UX.
325-366: Verified: Auto-generated notice removed from schema reference.The
generateSchemaReferencefunction similarly starts with frontmatter and title, consistent with the predicate reference and the PR's goal of standardizing documentation format.
✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.
Extract raw type names to shared helper, wrap properly in formatArrayType to produce valid markdown like `(module \| moduleRef)[]` instead of broken output with backticks inside parentheses. Co-Authored-By: Claude Opus 4.5 <[email protected]>
Users clicking RiviereBuilder/RiviereQuery/Types from Reference section navigate to /api/generated/... but saw a minimal sidebar missing Overview, ID Generation, Validation Rules, Error Messages. Updated /api/ sidebar to mirror the Library API section for consistent navigation experience across both path prefixes. Co-Authored-By: Claude Opus 4.5 <[email protected]>
Users clicking RiviereBuilder/RiviereQuery/Types from Reference section lost the full Reference sidebar because those pages were under /api/ which had its own sidebar config. Moved TypeDoc generated docs from /api/generated/ to /reference/api/generated/ so they share the /reference/ sidebar and navigation stays consistent. Updated markdownlint ignore pattern to match new location. Co-Authored-By: Claude Opus 4.5 <[email protected]>
…tation-navigation-a
Updated typedoc.json configs to output to /reference/api/generated/ and fixed all links in reference/api/index.md to use the new path. Co-Authored-By: Claude Opus 4.5 <[email protected]>
Added typedoc-plugin-frontmatter to inject `pageClass: reference` frontmatter into all TypeDoc-generated API documentation pages. This applies the same CSS styling as CLI and extraction-config reference pages for visual consistency. Co-Authored-By: Claude Opus 4.5 <[email protected]>
|



User description
Closes #154
Fixes #154
Summary
Changes
apps/docs/.vitepress/config.ts: Added /api/ sidebar with riviere-builder and riviere-query sectionspackages/riviere-cli/scripts/generate-docs.ts: Removed notice generationpackages/riviere-extract-config/scripts/generate-docs.ts: Removed notice generationPR Type
Documentation
Description
Add left sidebar navigation for /api/ pages in VitePress config
Remove auto-generated notices from CLI and extraction-config docs
Regenerate affected documentation files with cleaner UX
Diagram Walkthrough
File Walkthrough
9 files
Add API sidebar navigation structureRemove auto-generated notice from CLI docsRemove auto-generated notices from schema docsRemove auto-generated notice from CLI referenceRemove auto-generated notice from predicatesRemove notice and update schema documentationRemove auto-generated notice from CLI referenceRemove auto-generated notice from predicatesRemove auto-generated notice from schema docsSummary by CodeRabbit
Documentation
New Features
Chores
✏️ Tip: You can customize this high-level summary in your review settings.