@zigrivers/scaffold 3.28.0 → 3.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -1
- package/content/guides/.gitkeep +0 -0
- package/content/guides/AUTHORING.md +143 -0
- package/content/guides/cli/index.html +1502 -0
- package/content/guides/cli/index.md +206 -0
- package/content/guides/concepts/index.html +1617 -0
- package/content/guides/concepts/index.md +347 -0
- package/content/guides/dashboard/index.html +1560 -0
- package/content/guides/dashboard/index.md +264 -0
- package/content/guides/index.html +1188 -0
- package/content/guides/install/.diagrams/diagram-0.svg +1 -0
- package/content/guides/install/.diagrams/manifest.json +3 -0
- package/content/guides/install/index.html +1300 -0
- package/content/guides/install/index.md +186 -0
- package/content/guides/knowledge/.diagrams/diagram-0.svg +1 -0
- package/content/guides/knowledge/.diagrams/manifest.json +3 -0
- package/content/guides/knowledge/index.html +1412 -0
- package/content/guides/knowledge/index.md +209 -0
- package/content/guides/knowledge-freshness/.diagrams/diagram-0.svg +1 -0
- package/content/guides/knowledge-freshness/.diagrams/manifest.json +3 -0
- package/content/guides/knowledge-freshness/index.html +2442 -0
- package/content/guides/knowledge-freshness/index.md +893 -0
- package/content/guides/mmr/.diagrams/diagram-0.svg +1 -0
- package/content/guides/mmr/.diagrams/manifest.json +3 -0
- package/content/guides/mmr/index.html +1746 -0
- package/content/guides/mmr/index.md +426 -0
- package/content/guides/multi-agent/.diagrams/diagram-0.svg +1 -0
- package/content/guides/multi-agent/.diagrams/manifest.json +3 -0
- package/content/guides/multi-agent/index.html +1362 -0
- package/content/guides/multi-agent/index.md +243 -0
- package/content/guides/observability/.diagrams/diagram-0.svg +1 -0
- package/content/guides/observability/.diagrams/diagram-1.svg +1 -0
- package/content/guides/observability/.diagrams/diagram-2.svg +1 -0
- package/content/guides/observability/.diagrams/diagram-3.svg +1 -0
- package/content/guides/observability/.diagrams/manifest.json +6 -0
- package/content/guides/observability/index.html +2904 -0
- package/content/guides/observability/index.md +1097 -0
- package/content/guides/pipeline/.diagrams/diagram-0.svg +1 -0
- package/content/guides/pipeline/.diagrams/diagram-1.svg +1 -0
- package/content/guides/pipeline/.diagrams/manifest.json +4 -0
- package/content/guides/pipeline/index.html +1632 -0
- package/content/guides/pipeline/index.md +387 -0
- package/content/guides/review-workflow/.diagrams/diagram-0.svg +1 -0
- package/content/guides/review-workflow/.diagrams/diagram-1.svg +1 -0
- package/content/guides/review-workflow/.diagrams/manifest.json +4 -0
- package/content/guides/review-workflow/index.html +1437 -0
- package/content/guides/review-workflow/index.md +248 -0
- package/content/knowledge/VERSION +1 -0
- package/content/knowledge/backend/backend-api-design.md +8 -0
- package/content/knowledge/backend/backend-architecture.md +8 -0
- package/content/knowledge/backend/backend-async-patterns.md +7 -0
- package/content/knowledge/backend/backend-auth-patterns.md +9 -0
- package/content/knowledge/backend/backend-conventions.md +6 -0
- package/content/knowledge/backend/backend-data-modeling.md +7 -0
- package/content/knowledge/backend/backend-deployment.md +8 -0
- package/content/knowledge/backend/backend-dev-environment.md +5 -0
- package/content/knowledge/backend/backend-fintech-broker-integration.md +6 -0
- package/content/knowledge/backend/backend-fintech-compliance.md +10 -2
- package/content/knowledge/backend/backend-fintech-data-modeling.md +6 -0
- package/content/knowledge/backend/backend-fintech-ledger.md +6 -0
- package/content/knowledge/backend/backend-fintech-observability.md +6 -0
- package/content/knowledge/backend/backend-fintech-order-lifecycle.md +6 -0
- package/content/knowledge/backend/backend-fintech-risk-management.md +6 -0
- package/content/knowledge/backend/backend-fintech-testing.md +6 -0
- package/content/knowledge/backend/backend-observability.md +7 -0
- package/content/knowledge/backend/backend-project-structure.md +6 -0
- package/content/knowledge/backend/backend-requirements.md +6 -0
- package/content/knowledge/backend/backend-security.md +7 -0
- package/content/knowledge/backend/backend-testing.md +7 -0
- package/content/knowledge/backend/backend-worker-patterns.md +6 -0
- package/content/knowledge/browser-extension/browser-extension-architecture.md +6 -0
- package/content/knowledge/browser-extension/browser-extension-content-scripts.md +6 -0
- package/content/knowledge/browser-extension/browser-extension-conventions.md +6 -0
- package/content/knowledge/browser-extension/browser-extension-cross-browser.md +6 -0
- package/content/knowledge/browser-extension/browser-extension-dev-environment.md +6 -0
- package/content/knowledge/browser-extension/browser-extension-manifest.md +6 -0
- package/content/knowledge/browser-extension/browser-extension-project-structure.md +6 -0
- package/content/knowledge/browser-extension/browser-extension-requirements.md +6 -0
- package/content/knowledge/browser-extension/browser-extension-security.md +7 -0
- package/content/knowledge/browser-extension/browser-extension-service-workers.md +6 -0
- package/content/knowledge/browser-extension/browser-extension-store-submission.md +6 -0
- package/content/knowledge/browser-extension/browser-extension-testing.md +6 -0
- package/content/knowledge/cli/cli-architecture.md +4 -0
- package/content/knowledge/cli/cli-conventions.md +4 -0
- package/content/knowledge/cli/cli-dev-environment.md +5 -0
- package/content/knowledge/cli/cli-distribution-patterns.md +5 -0
- package/content/knowledge/cli/cli-interactivity-patterns.md +4 -0
- package/content/knowledge/cli/cli-output-patterns.md +4 -0
- package/content/knowledge/cli/cli-project-structure.md +4 -0
- package/content/knowledge/cli/cli-requirements.md +4 -0
- package/content/knowledge/cli/cli-shell-integration.md +4 -0
- package/content/knowledge/cli/cli-testing.md +4 -0
- package/content/knowledge/core/adr-craft.md +8 -0
- package/content/knowledge/core/ai-memory-management.md +6 -0
- package/content/knowledge/core/api-design.md +6 -0
- package/content/knowledge/core/automated-review-tooling.md +8 -0
- package/content/knowledge/core/claude-md-patterns.md +8 -0
- package/content/knowledge/core/coding-conventions.md +8 -0
- package/content/knowledge/core/database-design.md +8 -0
- package/content/knowledge/core/design-system-tokens.md +8 -0
- package/content/knowledge/core/dev-environment.md +4 -0
- package/content/knowledge/core/domain-modeling.md +6 -0
- package/content/knowledge/core/eval-craft.md +6 -0
- package/content/knowledge/core/git-workflow-patterns.md +8 -0
- package/content/knowledge/core/multi-model-research-dispatch.md +6 -0
- package/content/knowledge/core/multi-model-review-dispatch.md +6 -0
- package/content/knowledge/core/multi-service-api-contracts.md +5 -0
- package/content/knowledge/core/multi-service-architecture.md +5 -0
- package/content/knowledge/core/multi-service-auth.md +6 -0
- package/content/knowledge/core/multi-service-data-ownership.md +8 -0
- package/content/knowledge/core/multi-service-observability.md +8 -0
- package/content/knowledge/core/multi-service-resilience.md +5 -0
- package/content/knowledge/core/multi-service-task-decomposition.md +8 -0
- package/content/knowledge/core/multi-service-testing.md +5 -0
- package/content/knowledge/core/operations-runbook.md +8 -0
- package/content/knowledge/core/project-structure-patterns.md +4 -0
- package/content/knowledge/core/review-step-template.md +4 -0
- package/content/knowledge/core/security-best-practices.md +6 -0
- package/content/knowledge/core/system-architecture.md +6 -0
- package/content/knowledge/core/task-decomposition.md +5 -0
- package/content/knowledge/core/task-tracking.md +8 -0
- package/content/knowledge/core/tech-stack-selection.md +8 -0
- package/content/knowledge/core/test-skeleton-generation.md +4 -0
- package/content/knowledge/core/testing-strategy.md +8 -0
- package/content/knowledge/core/user-stories.md +8 -0
- package/content/knowledge/core/user-story-innovation.md +4 -0
- package/content/knowledge/core/ux-specification.md +5 -0
- package/content/knowledge/data-pipeline/data-pipeline-architecture.md +5 -0
- package/content/knowledge/data-pipeline/data-pipeline-batch-patterns.md +4 -0
- package/content/knowledge/data-pipeline/data-pipeline-conventions.md +4 -0
- package/content/knowledge/data-pipeline/data-pipeline-dev-environment.md +4 -0
- package/content/knowledge/data-pipeline/data-pipeline-orchestration.md +4 -0
- package/content/knowledge/data-pipeline/data-pipeline-project-structure.md +4 -0
- package/content/knowledge/data-pipeline/data-pipeline-quality.md +4 -0
- package/content/knowledge/data-pipeline/data-pipeline-requirements.md +4 -0
- package/content/knowledge/data-pipeline/data-pipeline-schema-management.md +4 -0
- package/content/knowledge/data-pipeline/data-pipeline-security.md +4 -0
- package/content/knowledge/data-pipeline/data-pipeline-streaming-patterns.md +4 -0
- package/content/knowledge/data-pipeline/data-pipeline-testing.md +4 -0
- package/content/knowledge/data-science/data-science-architecture.md +5 -0
- package/content/knowledge/data-science/data-science-conventions.md +6 -0
- package/content/knowledge/data-science/data-science-data-versioning.md +6 -0
- package/content/knowledge/data-science/data-science-dev-environment.md +6 -0
- package/content/knowledge/data-science/data-science-experiment-tracking.md +8 -0
- package/content/knowledge/data-science/data-science-model-evaluation.md +5 -0
- package/content/knowledge/data-science/data-science-notebook-discipline.md +5 -0
- package/content/knowledge/data-science/data-science-observability.md +6 -0
- package/content/knowledge/data-science/data-science-project-structure.md +5 -0
- package/content/knowledge/data-science/data-science-reproducibility.md +8 -0
- package/content/knowledge/data-science/data-science-requirements.md +5 -0
- package/content/knowledge/data-science/data-science-security.md +8 -0
- package/content/knowledge/data-science/data-science-testing.md +5 -0
- package/content/knowledge/execution/enhancement-workflow.md +4 -0
- package/content/knowledge/execution/multi-agent-coordination.md +12 -1
- package/content/knowledge/execution/task-claiming-strategy.md +4 -0
- package/content/knowledge/execution/tdd-execution-loop.md +5 -0
- package/content/knowledge/execution/worktree-management.md +5 -0
- package/content/knowledge/finalization/apply-fixes-and-freeze.md +4 -0
- package/content/knowledge/finalization/developer-onboarding.md +4 -0
- package/content/knowledge/finalization/implementation-playbook.md +4 -0
- package/content/knowledge/game/game-accessibility.md +4 -0
- package/content/knowledge/game/game-ai-patterns.md +4 -0
- package/content/knowledge/game/game-asset-pipeline.md +4 -0
- package/content/knowledge/game/game-audio-design.md +4 -0
- package/content/knowledge/game/game-binary-vcs-strategy.md +5 -0
- package/content/knowledge/game/game-design-document.md +4 -0
- package/content/knowledge/game/game-domain-patterns.md +4 -0
- package/content/knowledge/game/game-economy-design.md +4 -0
- package/content/knowledge/game/game-engine-selection.md +4 -0
- package/content/knowledge/game/game-ideation.md +4 -0
- package/content/knowledge/game/game-input-systems.md +4 -0
- package/content/knowledge/game/game-level-content-design.md +4 -0
- package/content/knowledge/game/game-liveops-analytics.md +4 -0
- package/content/knowledge/game/game-localization.md +4 -0
- package/content/knowledge/game/game-milestone-definitions.md +4 -0
- package/content/knowledge/game/game-modding-ugc.md +4 -0
- package/content/knowledge/game/game-narrative-design.md +4 -0
- package/content/knowledge/game/game-networking.md +4 -0
- package/content/knowledge/game/game-performance-budgeting.md +4 -0
- package/content/knowledge/game/game-platform-certification.md +6 -0
- package/content/knowledge/game/game-project-structure.md +4 -0
- package/content/knowledge/game/game-save-systems.md +4 -0
- package/content/knowledge/game/game-testing-strategy.md +4 -0
- package/content/knowledge/game/game-ui-patterns.md +4 -0
- package/content/knowledge/game/game-vr-ar-design.md +6 -0
- package/content/knowledge/library/library-api-design.md +4 -0
- package/content/knowledge/library/library-architecture.md +4 -0
- package/content/knowledge/library/library-bundling.md +4 -0
- package/content/knowledge/library/library-conventions.md +5 -0
- package/content/knowledge/library/library-dev-environment.md +4 -0
- package/content/knowledge/library/library-documentation.md +4 -0
- package/content/knowledge/library/library-project-structure.md +4 -0
- package/content/knowledge/library/library-requirements.md +4 -0
- package/content/knowledge/library/library-security.md +4 -0
- package/content/knowledge/library/library-testing.md +4 -0
- package/content/knowledge/library/library-type-definitions.md +4 -0
- package/content/knowledge/library/library-versioning.md +5 -0
- package/content/knowledge/ml/ml-architecture.md +4 -0
- package/content/knowledge/ml/ml-conventions.md +4 -0
- package/content/knowledge/ml/ml-dev-environment.md +4 -0
- package/content/knowledge/ml/ml-experiment-tracking.md +6 -0
- package/content/knowledge/ml/ml-model-evaluation.md +4 -0
- package/content/knowledge/ml/ml-observability.md +5 -0
- package/content/knowledge/ml/ml-project-structure.md +4 -0
- package/content/knowledge/ml/ml-requirements.md +4 -0
- package/content/knowledge/ml/ml-security.md +5 -0
- package/content/knowledge/ml/ml-serving-patterns.md +4 -0
- package/content/knowledge/ml/ml-testing.md +4 -0
- package/content/knowledge/ml/ml-training-patterns.md +4 -0
- package/content/knowledge/mobile-app/mobile-app-architecture.md +6 -0
- package/content/knowledge/mobile-app/mobile-app-conventions.md +6 -0
- package/content/knowledge/mobile-app/mobile-app-deployment.md +6 -0
- package/content/knowledge/mobile-app/mobile-app-dev-environment.md +6 -0
- package/content/knowledge/mobile-app/mobile-app-distribution.md +6 -0
- package/content/knowledge/mobile-app/mobile-app-observability.md +7 -0
- package/content/knowledge/mobile-app/mobile-app-offline-patterns.md +7 -0
- package/content/knowledge/mobile-app/mobile-app-project-structure.md +6 -0
- package/content/knowledge/mobile-app/mobile-app-push-notifications.md +6 -0
- package/content/knowledge/mobile-app/mobile-app-requirements.md +7 -0
- package/content/knowledge/mobile-app/mobile-app-security.md +8 -0
- package/content/knowledge/mobile-app/mobile-app-testing.md +6 -0
- package/content/knowledge/product/gap-analysis.md +4 -0
- package/content/knowledge/product/ideation-craft.md +4 -0
- package/content/knowledge/product/prd-craft.md +4 -0
- package/content/knowledge/product/prd-innovation.md +4 -0
- package/content/knowledge/product/vision-craft.md +4 -0
- package/content/knowledge/product/vision-innovation.md +4 -0
- package/content/knowledge/research/research-architecture.md +4 -0
- package/content/knowledge/research/research-conventions.md +6 -0
- package/content/knowledge/research/research-dev-environment.md +6 -0
- package/content/knowledge/research/research-experiment-loop.md +4 -0
- package/content/knowledge/research/research-experiment-tracking.md +6 -0
- package/content/knowledge/research/research-ml-architecture-search.md +4 -0
- package/content/knowledge/research/research-ml-evaluation.md +4 -0
- package/content/knowledge/research/research-ml-experiment-tracking.md +6 -0
- package/content/knowledge/research/research-ml-training-patterns.md +4 -0
- package/content/knowledge/research/research-observability.md +5 -0
- package/content/knowledge/research/research-overfitting-prevention.md +5 -0
- package/content/knowledge/research/research-project-structure.md +5 -0
- package/content/knowledge/research/research-quant-backtesting.md +4 -0
- package/content/knowledge/research/research-quant-market-data.md +4 -0
- package/content/knowledge/research/research-quant-metrics.md +4 -0
- package/content/knowledge/research/research-quant-requirements.md +4 -0
- package/content/knowledge/research/research-quant-risk.md +4 -0
- package/content/knowledge/research/research-quant-strategy-patterns.md +4 -0
- package/content/knowledge/research/research-requirements.md +5 -0
- package/content/knowledge/research/research-security.md +5 -0
- package/content/knowledge/research/research-sim-compute-management.md +4 -0
- package/content/knowledge/research/research-sim-engine-patterns.md +4 -0
- package/content/knowledge/research/research-sim-parameter-spaces.md +4 -0
- package/content/knowledge/research/research-sim-validation.md +4 -0
- package/content/knowledge/research/research-testing.md +5 -0
- package/content/knowledge/review/review-adr.md +6 -0
- package/content/knowledge/review/review-api-design.md +6 -0
- package/content/knowledge/review/review-art-bible.md +4 -0
- package/content/knowledge/review/review-database-design.md +5 -0
- package/content/knowledge/review/review-domain-modeling.md +5 -0
- package/content/knowledge/review/review-game-design.md +4 -0
- package/content/knowledge/review/review-game-economy.md +4 -0
- package/content/knowledge/review/review-game-ui.md +5 -0
- package/content/knowledge/review/review-implementation-tasks.md +5 -0
- package/content/knowledge/review/review-methodology.md +4 -0
- package/content/knowledge/review/review-netcode.md +4 -0
- package/content/knowledge/review/review-operations.md +6 -0
- package/content/knowledge/review/review-platform-cert.md +4 -0
- package/content/knowledge/review/review-prd.md +4 -0
- package/content/knowledge/review/review-security.md +7 -0
- package/content/knowledge/review/review-system-architecture.md +6 -0
- package/content/knowledge/review/review-testing-strategy.md +6 -0
- package/content/knowledge/review/review-user-stories.md +5 -0
- package/content/knowledge/review/review-ux-specification.md +6 -0
- package/content/knowledge/review/review-vision.md +4 -0
- package/content/knowledge/tools/post-implementation-review-methodology.md +4 -0
- package/content/knowledge/tools/release-management.md +5 -0
- package/content/knowledge/tools/session-analysis.md +4 -0
- package/content/knowledge/tools/version-strategy.md +4 -0
- package/content/knowledge/validation/critical-path-analysis.md +4 -0
- package/content/knowledge/validation/cross-phase-consistency.md +4 -0
- package/content/knowledge/validation/decision-completeness.md +5 -0
- package/content/knowledge/validation/dependency-validation.md +4 -0
- package/content/knowledge/validation/implementability-review.md +4 -0
- package/content/knowledge/validation/scope-management.md +4 -0
- package/content/knowledge/validation/traceability.md +4 -0
- package/content/knowledge/web-app/web-app-api-patterns.md +6 -0
- package/content/knowledge/web-app/web-app-architecture.md +6 -0
- package/content/knowledge/web-app/web-app-auth-patterns.md +9 -0
- package/content/knowledge/web-app/web-app-conventions.md +5 -0
- package/content/knowledge/web-app/web-app-data-patterns.md +6 -0
- package/content/knowledge/web-app/web-app-deployment-workflow.md +6 -0
- package/content/knowledge/web-app/web-app-deployment.md +6 -0
- package/content/knowledge/web-app/web-app-design-system.md +6 -0
- package/content/knowledge/web-app/web-app-dev-environment.md +6 -0
- package/content/knowledge/web-app/web-app-observability.md +6 -0
- package/content/knowledge/web-app/web-app-project-structure.md +5 -0
- package/content/knowledge/web-app/web-app-rendering-strategies.md +6 -0
- package/content/knowledge/web-app/web-app-requirements.md +6 -0
- package/content/knowledge/web-app/web-app-security.md +8 -0
- package/content/knowledge/web-app/web-app-session-patterns.md +7 -0
- package/content/knowledge/web-app/web-app-testing.md +6 -0
- package/content/knowledge/web-app/web-app-ux-patterns.md +6 -0
- package/content/knowledge/web3/web3-access-control.md +8 -0
- package/content/knowledge/web3/web3-architecture.md +7 -0
- package/content/knowledge/web3/web3-audit-workflow.md +7 -0
- package/content/knowledge/web3/web3-common-vulnerabilities.md +8 -0
- package/content/knowledge/web3/web3-conventions.md +6 -0
- package/content/knowledge/web3/web3-deployment-and-verification.md +7 -0
- package/content/knowledge/web3/web3-dev-environment.md +6 -0
- package/content/knowledge/web3/web3-gas-optimization.md +7 -0
- package/content/knowledge/web3/web3-oracles-and-external-data.md +7 -0
- package/content/knowledge/web3/web3-project-structure.md +6 -0
- package/content/knowledge/web3/web3-requirements.md +6 -0
- package/content/knowledge/web3/web3-security.md +8 -0
- package/content/knowledge/web3/web3-testing.md +6 -0
- package/content/knowledge/web3/web3-upgradeability.md +7 -0
- package/content/tools/knowledge-audit-entry.md +79 -0
- package/content/tools/review-code.md +41 -14
- package/content/tools/review-pr.md +32 -14
- package/dist/cli/commands/dashboard.d.ts +1 -1
- package/dist/cli/commands/dashboard.d.ts.map +1 -1
- package/dist/cli/commands/dashboard.js +10 -10
- package/dist/cli/commands/dashboard.js.map +1 -1
- package/dist/cli/commands/dashboard.test.js +1 -1
- package/dist/cli/commands/dashboard.test.js.map +1 -1
- package/dist/cli/commands/guides.d.ts +24 -0
- package/dist/cli/commands/guides.d.ts.map +1 -0
- package/dist/cli/commands/guides.js +103 -0
- package/dist/cli/commands/guides.js.map +1 -0
- package/dist/cli/commands/knowledge-freshness-anti-over-rewrite.d.ts +9 -0
- package/dist/cli/commands/knowledge-freshness-anti-over-rewrite.d.ts.map +1 -0
- package/dist/cli/commands/knowledge-freshness-anti-over-rewrite.js +112 -0
- package/dist/cli/commands/knowledge-freshness-anti-over-rewrite.js.map +1 -0
- package/dist/cli/commands/knowledge-freshness-audit-apply.d.ts +8 -0
- package/dist/cli/commands/knowledge-freshness-audit-apply.d.ts.map +1 -0
- package/dist/cli/commands/knowledge-freshness-audit-apply.js +96 -0
- package/dist/cli/commands/knowledge-freshness-audit-apply.js.map +1 -0
- package/dist/cli/commands/knowledge-freshness-audit-prefilter.d.ts +7 -0
- package/dist/cli/commands/knowledge-freshness-audit-prefilter.d.ts.map +1 -0
- package/dist/cli/commands/knowledge-freshness-audit-prefilter.js +42 -0
- package/dist/cli/commands/knowledge-freshness-audit-prefilter.js.map +1 -0
- package/dist/cli/commands/knowledge-freshness-audit-run-entry.d.ts +9 -0
- package/dist/cli/commands/knowledge-freshness-audit-run-entry.d.ts.map +1 -0
- package/dist/cli/commands/knowledge-freshness-audit-run-entry.js +63 -0
- package/dist/cli/commands/knowledge-freshness-audit-run-entry.js.map +1 -0
- package/dist/cli/commands/knowledge-freshness-bump-version.d.ts +8 -0
- package/dist/cli/commands/knowledge-freshness-bump-version.d.ts.map +1 -0
- package/dist/cli/commands/knowledge-freshness-bump-version.js +34 -0
- package/dist/cli/commands/knowledge-freshness-bump-version.js.map +1 -0
- package/dist/cli/commands/knowledge-freshness-deep-guidance-check.d.ts +7 -0
- package/dist/cli/commands/knowledge-freshness-deep-guidance-check.d.ts.map +1 -0
- package/dist/cli/commands/knowledge-freshness-deep-guidance-check.js +51 -0
- package/dist/cli/commands/knowledge-freshness-deep-guidance-check.js.map +1 -0
- package/dist/cli/commands/knowledge-freshness-link-check.d.ts +7 -0
- package/dist/cli/commands/knowledge-freshness-link-check.d.ts.map +1 -0
- package/dist/cli/commands/knowledge-freshness-link-check.js +57 -0
- package/dist/cli/commands/knowledge-freshness-link-check.js.map +1 -0
- package/dist/cli/commands/knowledge-freshness-lint-unsourced.d.ts +8 -0
- package/dist/cli/commands/knowledge-freshness-lint-unsourced.d.ts.map +1 -0
- package/dist/cli/commands/knowledge-freshness-lint-unsourced.js +58 -0
- package/dist/cli/commands/knowledge-freshness-lint-unsourced.js.map +1 -0
- package/dist/cli/commands/knowledge-freshness.d.ts +4 -0
- package/dist/cli/commands/knowledge-freshness.d.ts.map +1 -0
- package/dist/cli/commands/knowledge-freshness.js +25 -0
- package/dist/cli/commands/knowledge-freshness.js.map +1 -0
- package/dist/cli/commands/observe.d.ts +4 -0
- package/dist/cli/commands/observe.d.ts.map +1 -1
- package/dist/cli/commands/observe.js +13 -0
- package/dist/cli/commands/observe.js.map +1 -1
- package/dist/cli/commands/observe.test.js +46 -0
- package/dist/cli/commands/observe.test.js.map +1 -1
- package/dist/cli/commands/validate-knowledge.d.ts +4 -0
- package/dist/cli/commands/validate-knowledge.d.ts.map +1 -0
- package/dist/cli/commands/validate-knowledge.js +32 -0
- package/dist/cli/commands/validate-knowledge.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +6 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/core/adapters/claude-code.d.ts.map +1 -1
- package/dist/core/adapters/claude-code.js +6 -3
- package/dist/core/adapters/claude-code.js.map +1 -1
- package/dist/core/adapters/claude-code.test.js +45 -1
- package/dist/core/adapters/claude-code.test.js.map +1 -1
- package/dist/core/assembly/engine.d.ts.map +1 -1
- package/dist/core/assembly/engine.js +7 -3
- package/dist/core/assembly/engine.js.map +1 -1
- package/dist/core/assembly/engine.test.js +45 -1
- package/dist/core/assembly/engine.test.js.map +1 -1
- package/dist/core/assembly/gap-signal-tail.d.ts +18 -0
- package/dist/core/assembly/gap-signal-tail.d.ts.map +1 -0
- package/dist/core/assembly/gap-signal-tail.js +43 -0
- package/dist/core/assembly/gap-signal-tail.js.map +1 -0
- package/dist/core/assembly/gap-signal-tail.test.d.ts +2 -0
- package/dist/core/assembly/gap-signal-tail.test.d.ts.map +1 -0
- package/dist/core/assembly/gap-signal-tail.test.js +49 -0
- package/dist/core/assembly/gap-signal-tail.test.js.map +1 -0
- package/dist/core/assembly/knowledge-loader.d.ts +11 -0
- package/dist/core/assembly/knowledge-loader.d.ts.map +1 -1
- package/dist/core/assembly/knowledge-loader.js +54 -1
- package/dist/core/assembly/knowledge-loader.js.map +1 -1
- package/dist/core/assembly/knowledge-loader.test.js +73 -0
- package/dist/core/assembly/knowledge-loader.test.js.map +1 -1
- package/dist/guides/build.d.ts +12 -0
- package/dist/guides/build.d.ts.map +1 -0
- package/dist/guides/build.js +55 -0
- package/dist/guides/build.js.map +1 -0
- package/dist/guides/build.test.d.ts +2 -0
- package/dist/guides/build.test.d.ts.map +1 -0
- package/dist/guides/build.test.js +82 -0
- package/dist/guides/build.test.js.map +1 -0
- package/dist/guides/chrome.d.ts +24 -0
- package/dist/guides/chrome.d.ts.map +1 -0
- package/dist/guides/chrome.js +118 -0
- package/dist/guides/chrome.js.map +1 -0
- package/dist/guides/cli-guides.test.d.ts +2 -0
- package/dist/guides/cli-guides.test.d.ts.map +1 -0
- package/dist/guides/cli-guides.test.js +41 -0
- package/dist/guides/cli-guides.test.js.map +1 -0
- package/dist/guides/dashboard-theme.css +1073 -0
- package/dist/guides/directives-callout.test.d.ts +2 -0
- package/dist/guides/directives-callout.test.d.ts.map +1 -0
- package/dist/guides/directives-callout.test.js +22 -0
- package/dist/guides/directives-callout.test.js.map +1 -0
- package/dist/guides/directives-chart.test.d.ts +2 -0
- package/dist/guides/directives-chart.test.d.ts.map +1 -0
- package/dist/guides/directives-chart.test.js +25 -0
- package/dist/guides/directives-chart.test.js.map +1 -0
- package/dist/guides/directives-cite.test.d.ts +2 -0
- package/dist/guides/directives-cite.test.d.ts.map +1 -0
- package/dist/guides/directives-cite.test.js +26 -0
- package/dist/guides/directives-cite.test.js.map +1 -0
- package/dist/guides/directives-filter-table.test.d.ts +2 -0
- package/dist/guides/directives-filter-table.test.d.ts.map +1 -0
- package/dist/guides/directives-filter-table.test.js +22 -0
- package/dist/guides/directives-filter-table.test.js.map +1 -0
- package/dist/guides/directives-sev.test.d.ts +2 -0
- package/dist/guides/directives-sev.test.d.ts.map +1 -0
- package/dist/guides/directives-sev.test.js +15 -0
- package/dist/guides/directives-sev.test.js.map +1 -0
- package/dist/guides/directives-tabs.test.d.ts +2 -0
- package/dist/guides/directives-tabs.test.d.ts.map +1 -0
- package/dist/guides/directives-tabs.test.js +52 -0
- package/dist/guides/directives-tabs.test.js.map +1 -0
- package/dist/guides/directives.d.ts +8 -0
- package/dist/guides/directives.d.ts.map +1 -0
- package/dist/guides/directives.js +182 -0
- package/dist/guides/directives.js.map +1 -0
- package/dist/guides/fs-guides.test.d.ts +2 -0
- package/dist/guides/fs-guides.test.d.ts.map +1 -0
- package/dist/guides/fs-guides.test.js +14 -0
- package/dist/guides/fs-guides.test.js.map +1 -0
- package/dist/guides/index-page.d.ts +3 -0
- package/dist/guides/index-page.d.ts.map +1 -0
- package/dist/guides/index-page.js +14 -0
- package/dist/guides/index-page.js.map +1 -0
- package/dist/guides/links.d.ts +14 -0
- package/dist/guides/links.d.ts.map +1 -0
- package/dist/guides/links.js +56 -0
- package/dist/guides/links.js.map +1 -0
- package/dist/guides/links.test.d.ts +2 -0
- package/dist/guides/links.test.d.ts.map +1 -0
- package/dist/guides/links.test.js +72 -0
- package/dist/guides/links.test.js.map +1 -0
- package/dist/guides/lint.d.ts +6 -0
- package/dist/guides/lint.d.ts.map +1 -0
- package/dist/guides/lint.js +27 -0
- package/dist/guides/lint.js.map +1 -0
- package/dist/guides/lint.test.d.ts +2 -0
- package/dist/guides/lint.test.d.ts.map +1 -0
- package/dist/guides/lint.test.js +24 -0
- package/dist/guides/lint.test.js.map +1 -0
- package/dist/guides/loader.d.ts +4 -0
- package/dist/guides/loader.d.ts.map +1 -0
- package/dist/guides/loader.js +63 -0
- package/dist/guides/loader.js.map +1 -0
- package/dist/guides/loader.test.d.ts +2 -0
- package/dist/guides/loader.test.d.ts.map +1 -0
- package/dist/guides/loader.test.js +85 -0
- package/dist/guides/loader.test.js.map +1 -0
- package/dist/guides/mermaid-sanitize.test.d.ts +2 -0
- package/dist/guides/mermaid-sanitize.test.d.ts.map +1 -0
- package/dist/guides/mermaid-sanitize.test.js +57 -0
- package/dist/guides/mermaid-sanitize.test.js.map +1 -0
- package/dist/guides/mermaid.d.ts +18 -0
- package/dist/guides/mermaid.d.ts.map +1 -0
- package/dist/guides/mermaid.js +137 -0
- package/dist/guides/mermaid.js.map +1 -0
- package/dist/guides/mermaid.test.d.ts +2 -0
- package/dist/guides/mermaid.test.d.ts.map +1 -0
- package/dist/guides/mermaid.test.js +105 -0
- package/dist/guides/mermaid.test.js.map +1 -0
- package/dist/guides/render.d.ts +13 -0
- package/dist/guides/render.d.ts.map +1 -0
- package/dist/guides/render.js +58 -0
- package/dist/guides/render.js.map +1 -0
- package/dist/guides/render.test.d.ts +2 -0
- package/dist/guides/render.test.d.ts.map +1 -0
- package/dist/guides/render.test.js +46 -0
- package/dist/guides/render.test.js.map +1 -0
- package/dist/guides/sanitize.d.ts +3 -0
- package/dist/guides/sanitize.d.ts.map +1 -0
- package/dist/guides/sanitize.js +77 -0
- package/dist/guides/sanitize.js.map +1 -0
- package/dist/guides/sanitize.test.d.ts +2 -0
- package/dist/guides/sanitize.test.d.ts.map +1 -0
- package/dist/guides/sanitize.test.js +45 -0
- package/dist/guides/sanitize.test.js.map +1 -0
- package/dist/guides/template.d.ts +11 -0
- package/dist/guides/template.d.ts.map +1 -0
- package/dist/guides/template.js +38 -0
- package/dist/guides/template.js.map +1 -0
- package/dist/guides/template.test.d.ts +2 -0
- package/dist/guides/template.test.d.ts.map +1 -0
- package/dist/guides/template.test.js +41 -0
- package/dist/guides/template.test.js.map +1 -0
- package/dist/guides/types.d.ts +20 -0
- package/dist/guides/types.d.ts.map +1 -0
- package/dist/guides/types.js +2 -0
- package/dist/guides/types.js.map +1 -0
- package/dist/knowledge-freshness/audit-apply-pr.d.ts +64 -0
- package/dist/knowledge-freshness/audit-apply-pr.d.ts.map +1 -0
- package/dist/knowledge-freshness/audit-apply-pr.js +309 -0
- package/dist/knowledge-freshness/audit-apply-pr.js.map +1 -0
- package/dist/knowledge-freshness/audit-apply-pr.test.d.ts +2 -0
- package/dist/knowledge-freshness/audit-apply-pr.test.d.ts.map +1 -0
- package/dist/knowledge-freshness/audit-apply-pr.test.js +211 -0
- package/dist/knowledge-freshness/audit-apply-pr.test.js.map +1 -0
- package/dist/knowledge-freshness/audit-apply.d.ts +16 -0
- package/dist/knowledge-freshness/audit-apply.d.ts.map +1 -0
- package/dist/knowledge-freshness/audit-apply.js +193 -0
- package/dist/knowledge-freshness/audit-apply.js.map +1 -0
- package/dist/knowledge-freshness/audit-apply.test.d.ts +2 -0
- package/dist/knowledge-freshness/audit-apply.test.d.ts.map +1 -0
- package/dist/knowledge-freshness/audit-apply.test.js +482 -0
- package/dist/knowledge-freshness/audit-apply.test.js.map +1 -0
- package/dist/knowledge-freshness/audit-prefilter.d.ts +12 -0
- package/dist/knowledge-freshness/audit-prefilter.d.ts.map +1 -0
- package/dist/knowledge-freshness/audit-prefilter.js +74 -0
- package/dist/knowledge-freshness/audit-prefilter.js.map +1 -0
- package/dist/knowledge-freshness/audit-prefilter.test.d.ts +2 -0
- package/dist/knowledge-freshness/audit-prefilter.test.d.ts.map +1 -0
- package/dist/knowledge-freshness/audit-prefilter.test.js +78 -0
- package/dist/knowledge-freshness/audit-prefilter.test.js.map +1 -0
- package/dist/knowledge-freshness/audit-runner.d.ts +135 -0
- package/dist/knowledge-freshness/audit-runner.d.ts.map +1 -0
- package/dist/knowledge-freshness/audit-runner.js +168 -0
- package/dist/knowledge-freshness/audit-runner.js.map +1 -0
- package/dist/knowledge-freshness/audit-runner.test.d.ts +2 -0
- package/dist/knowledge-freshness/audit-runner.test.d.ts.map +1 -0
- package/dist/knowledge-freshness/audit-runner.test.js +130 -0
- package/dist/knowledge-freshness/audit-runner.test.js.map +1 -0
- package/dist/knowledge-freshness/bump-version.d.ts +24 -0
- package/dist/knowledge-freshness/bump-version.d.ts.map +1 -0
- package/dist/knowledge-freshness/bump-version.js +69 -0
- package/dist/knowledge-freshness/bump-version.js.map +1 -0
- package/dist/knowledge-freshness/bump-version.test.d.ts +2 -0
- package/dist/knowledge-freshness/bump-version.test.d.ts.map +1 -0
- package/dist/knowledge-freshness/bump-version.test.js +82 -0
- package/dist/knowledge-freshness/bump-version.test.js.map +1 -0
- package/dist/knowledge-freshness/gates/anti-over-rewrite.d.ts +86 -0
- package/dist/knowledge-freshness/gates/anti-over-rewrite.d.ts.map +1 -0
- package/dist/knowledge-freshness/gates/anti-over-rewrite.js +210 -0
- package/dist/knowledge-freshness/gates/anti-over-rewrite.js.map +1 -0
- package/dist/knowledge-freshness/gates/anti-over-rewrite.test.d.ts +2 -0
- package/dist/knowledge-freshness/gates/anti-over-rewrite.test.d.ts.map +1 -0
- package/dist/knowledge-freshness/gates/anti-over-rewrite.test.js +115 -0
- package/dist/knowledge-freshness/gates/anti-over-rewrite.test.js.map +1 -0
- package/dist/knowledge-freshness/gates/changed-files.d.ts +53 -0
- package/dist/knowledge-freshness/gates/changed-files.d.ts.map +1 -0
- package/dist/knowledge-freshness/gates/changed-files.js +128 -0
- package/dist/knowledge-freshness/gates/changed-files.js.map +1 -0
- package/dist/knowledge-freshness/gates/deep-guidance-check.d.ts +23 -0
- package/dist/knowledge-freshness/gates/deep-guidance-check.d.ts.map +1 -0
- package/dist/knowledge-freshness/gates/deep-guidance-check.js +27 -0
- package/dist/knowledge-freshness/gates/deep-guidance-check.js.map +1 -0
- package/dist/knowledge-freshness/gates/deep-guidance-check.test.d.ts +2 -0
- package/dist/knowledge-freshness/gates/deep-guidance-check.test.d.ts.map +1 -0
- package/dist/knowledge-freshness/gates/deep-guidance-check.test.js +23 -0
- package/dist/knowledge-freshness/gates/deep-guidance-check.test.js.map +1 -0
- package/dist/knowledge-freshness/gates/link-check.d.ts +55 -0
- package/dist/knowledge-freshness/gates/link-check.d.ts.map +1 -0
- package/dist/knowledge-freshness/gates/link-check.js +161 -0
- package/dist/knowledge-freshness/gates/link-check.js.map +1 -0
- package/dist/knowledge-freshness/gates/link-check.test.d.ts +2 -0
- package/dist/knowledge-freshness/gates/link-check.test.d.ts.map +1 -0
- package/dist/knowledge-freshness/gates/link-check.test.js +76 -0
- package/dist/knowledge-freshness/gates/link-check.test.js.map +1 -0
- package/dist/knowledge-freshness/gates/lint-unsourced.d.ts +40 -0
- package/dist/knowledge-freshness/gates/lint-unsourced.d.ts.map +1 -0
- package/dist/knowledge-freshness/gates/lint-unsourced.js +143 -0
- package/dist/knowledge-freshness/gates/lint-unsourced.js.map +1 -0
- package/dist/knowledge-freshness/gates/lint-unsourced.test.d.ts +2 -0
- package/dist/knowledge-freshness/gates/lint-unsourced.test.d.ts.map +1 -0
- package/dist/knowledge-freshness/gates/lint-unsourced.test.js +68 -0
- package/dist/knowledge-freshness/gates/lint-unsourced.test.js.map +1 -0
- package/dist/knowledge-freshness/gates/parse-entry.d.ts +25 -0
- package/dist/knowledge-freshness/gates/parse-entry.d.ts.map +1 -0
- package/dist/knowledge-freshness/gates/parse-entry.js +41 -0
- package/dist/knowledge-freshness/gates/parse-entry.js.map +1 -0
- package/dist/knowledge-freshness/gates/parse-entry.test.d.ts +2 -0
- package/dist/knowledge-freshness/gates/parse-entry.test.d.ts.map +1 -0
- package/dist/knowledge-freshness/gates/parse-entry.test.js +34 -0
- package/dist/knowledge-freshness/gates/parse-entry.test.js.map +1 -0
- package/dist/knowledge-freshness/providers/anthropic.d.ts +33 -0
- package/dist/knowledge-freshness/providers/anthropic.d.ts.map +1 -0
- package/dist/knowledge-freshness/providers/anthropic.js +36 -0
- package/dist/knowledge-freshness/providers/anthropic.js.map +1 -0
- package/dist/knowledge-freshness/providers/anthropic.test.d.ts +2 -0
- package/dist/knowledge-freshness/providers/anthropic.test.d.ts.map +1 -0
- package/dist/knowledge-freshness/providers/anthropic.test.js +32 -0
- package/dist/knowledge-freshness/providers/anthropic.test.js.map +1 -0
- package/dist/knowledge-freshness/providers/deepseek.d.ts +33 -0
- package/dist/knowledge-freshness/providers/deepseek.d.ts.map +1 -0
- package/dist/knowledge-freshness/providers/deepseek.js +157 -0
- package/dist/knowledge-freshness/providers/deepseek.js.map +1 -0
- package/dist/knowledge-freshness/providers/deepseek.test.d.ts +2 -0
- package/dist/knowledge-freshness/providers/deepseek.test.d.ts.map +1 -0
- package/dist/knowledge-freshness/providers/deepseek.test.js +142 -0
- package/dist/knowledge-freshness/providers/deepseek.test.js.map +1 -0
- package/dist/knowledge-freshness/providers/index.d.ts +41 -0
- package/dist/knowledge-freshness/providers/index.d.ts.map +1 -0
- package/dist/knowledge-freshness/providers/index.js +108 -0
- package/dist/knowledge-freshness/providers/index.js.map +1 -0
- package/dist/knowledge-freshness/providers/index.test.d.ts +2 -0
- package/dist/knowledge-freshness/providers/index.test.d.ts.map +1 -0
- package/dist/knowledge-freshness/providers/index.test.js +97 -0
- package/dist/knowledge-freshness/providers/index.test.js.map +1 -0
- package/dist/knowledge-freshness/source-hash.d.ts +39 -0
- package/dist/knowledge-freshness/source-hash.d.ts.map +1 -0
- package/dist/knowledge-freshness/source-hash.js +180 -0
- package/dist/knowledge-freshness/source-hash.js.map +1 -0
- package/dist/knowledge-freshness/source-hash.test.d.ts +2 -0
- package/dist/knowledge-freshness/source-hash.test.d.ts.map +1 -0
- package/dist/knowledge-freshness/source-hash.test.js +63 -0
- package/dist/knowledge-freshness/source-hash.test.js.map +1 -0
- package/dist/knowledge-freshness/source-url-validator.d.ts +57 -0
- package/dist/knowledge-freshness/source-url-validator.d.ts.map +1 -0
- package/dist/knowledge-freshness/source-url-validator.js +304 -0
- package/dist/knowledge-freshness/source-url-validator.js.map +1 -0
- package/dist/knowledge-freshness/source-url-validator.test.d.ts +2 -0
- package/dist/knowledge-freshness/source-url-validator.test.d.ts.map +1 -0
- package/dist/knowledge-freshness/source-url-validator.test.js +167 -0
- package/dist/knowledge-freshness/source-url-validator.test.js.map +1 -0
- package/dist/observability/checks/lens-i-knowledge-gaps.d.ts +3 -0
- package/dist/observability/checks/lens-i-knowledge-gaps.d.ts.map +1 -0
- package/dist/observability/checks/lens-i-knowledge-gaps.js +165 -0
- package/dist/observability/checks/lens-i-knowledge-gaps.js.map +1 -0
- package/dist/observability/checks/lens-i-knowledge-gaps.test.d.ts +2 -0
- package/dist/observability/checks/lens-i-knowledge-gaps.test.d.ts.map +1 -0
- package/dist/observability/checks/lens-i-knowledge-gaps.test.js +421 -0
- package/dist/observability/checks/lens-i-knowledge-gaps.test.js.map +1 -0
- package/dist/observability/checks/lens-i-lessons-scanner.d.ts +16 -0
- package/dist/observability/checks/lens-i-lessons-scanner.d.ts.map +1 -0
- package/dist/observability/checks/lens-i-lessons-scanner.js +106 -0
- package/dist/observability/checks/lens-i-lessons-scanner.js.map +1 -0
- package/dist/observability/checks/lens-i-lessons-scanner.test.d.ts +2 -0
- package/dist/observability/checks/lens-i-lessons-scanner.test.d.ts.map +1 -0
- package/dist/observability/checks/lens-i-lessons-scanner.test.js +174 -0
- package/dist/observability/checks/lens-i-lessons-scanner.test.js.map +1 -0
- package/dist/observability/engine/api.d.ts +4 -0
- package/dist/observability/engine/api.d.ts.map +1 -1
- package/dist/observability/engine/api.js +17 -1
- package/dist/observability/engine/api.js.map +1 -1
- package/dist/observability/engine/checks/observability-config.d.ts +4 -0
- package/dist/observability/engine/checks/observability-config.d.ts.map +1 -1
- package/dist/observability/engine/checks/observability-config.js +1 -0
- package/dist/observability/engine/checks/observability-config.js.map +1 -1
- package/dist/observability/engine/checks/registry.d.ts.map +1 -1
- package/dist/observability/engine/checks/registry.js +7 -0
- package/dist/observability/engine/checks/registry.js.map +1 -1
- package/dist/observability/engine/checks/registry.test.js +3 -2
- package/dist/observability/engine/checks/registry.test.js.map +1 -1
- package/dist/observability/engine/checks/runner.d.ts +30 -0
- package/dist/observability/engine/checks/runner.d.ts.map +1 -1
- package/dist/observability/engine/checks/runner.js +8 -1
- package/dist/observability/engine/checks/runner.js.map +1 -1
- package/dist/observability/engine/checks/runner.test.js +74 -0
- package/dist/observability/engine/checks/runner.test.js.map +1 -1
- package/dist/observability/engine/event-schemas.d.ts.map +1 -1
- package/dist/observability/engine/event-schemas.js +41 -3
- package/dist/observability/engine/event-schemas.js.map +1 -1
- package/dist/observability/engine/event-schemas.test.js +105 -0
- package/dist/observability/engine/event-schemas.test.js.map +1 -1
- package/dist/observability/engine/fix-flow.d.ts +7 -0
- package/dist/observability/engine/fix-flow.d.ts.map +1 -1
- package/dist/observability/engine/fix-flow.js +5 -3
- package/dist/observability/engine/fix-flow.js.map +1 -1
- package/dist/observability/engine/knowledge-root-integration.test.d.ts +2 -0
- package/dist/observability/engine/knowledge-root-integration.test.d.ts.map +1 -0
- package/dist/observability/engine/knowledge-root-integration.test.js +103 -0
- package/dist/observability/engine/knowledge-root-integration.test.js.map +1 -0
- package/dist/observability/engine/types.d.ts +20 -1
- package/dist/observability/engine/types.d.ts.map +1 -1
- package/dist/observability/engine/types.test.js +1 -1
- package/dist/observability/engine/types.test.js.map +1 -1
- package/dist/observability/knowledge-index.d.ts +145 -0
- package/dist/observability/knowledge-index.d.ts.map +1 -0
- package/dist/observability/knowledge-index.js +353 -0
- package/dist/observability/knowledge-index.js.map +1 -0
- package/dist/observability/knowledge-index.test.d.ts +2 -0
- package/dist/observability/knowledge-index.test.d.ts.map +1 -0
- package/dist/observability/knowledge-index.test.js +364 -0
- package/dist/observability/knowledge-index.test.js.map +1 -0
- package/dist/observability/renderers/markdown.d.ts.map +1 -1
- package/dist/observability/renderers/markdown.js +14 -0
- package/dist/observability/renderers/markdown.js.map +1 -1
- package/dist/observability/renderers/markdown.test.js +30 -0
- package/dist/observability/renderers/markdown.test.js.map +1 -1
- package/dist/types/assembly.d.ts +10 -0
- package/dist/types/assembly.d.ts.map +1 -1
- package/dist/utils/fs.d.ts +6 -0
- package/dist/utils/fs.d.ts.map +1 -1
- package/dist/utils/fs.js +13 -0
- package/dist/utils/fs.js.map +1 -1
- package/dist/validation/knowledge-frontmatter-validator.d.ts +15 -0
- package/dist/validation/knowledge-frontmatter-validator.d.ts.map +1 -0
- package/dist/validation/knowledge-frontmatter-validator.js +131 -0
- package/dist/validation/knowledge-frontmatter-validator.js.map +1 -0
- package/dist/validation/knowledge-frontmatter-validator.test.d.ts +2 -0
- package/dist/validation/knowledge-frontmatter-validator.test.d.ts.map +1 -0
- package/dist/validation/knowledge-frontmatter-validator.test.js +66 -0
- package/dist/validation/knowledge-frontmatter-validator.test.js.map +1 -0
- package/package.json +13 -4
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: The Code-Review Workflow
|
|
3
|
+
topic: review-workflow
|
|
4
|
+
description: When and how to run multi-model review — entry points, input modes, verdicts, the round limit, and degraded mode
|
|
5
|
+
category: workflows
|
|
6
|
+
order: 30
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## What this guide covers
|
|
10
|
+
|
|
11
|
+
This is the **workflow** around multi-model review: *when* to review, *which*
|
|
12
|
+
entry point to reach for, *which* input mode matches your target, how to read
|
|
13
|
+
the verdict, and how the fix loop is bounded. It does **not** re-explain the
|
|
14
|
+
review engine itself — channels, reconciliation, the `finding_key`, the verdict
|
|
15
|
+
algorithm, and `.mmr.yaml` all live in the [MMR reference](../mmr/index.md).
|
|
16
|
+
Read that guide for "what is a channel"; read this one for "I have a change, now
|
|
17
|
+
what do I run."
|
|
18
|
+
|
|
19
|
+
:::callout{type=tip}
|
|
20
|
+
**Two layers.** `mmr review` is the engine. `scaffold run review-pr` and
|
|
21
|
+
`review-code` are *workflow wrappers* on top — they pick the input mode, add the
|
|
22
|
+
Superpowers code-reviewer agent channel via `mmr reconcile`, handle auth
|
|
23
|
+
recovery, and bound the fix loop. `post-implementation-review` is a separate,
|
|
24
|
+
release-time full-codebase review with its own flow (see Step 1). This guide is
|
|
25
|
+
about driving those entry points; the engine details are in
|
|
26
|
+
[the MMR reference](../mmr/index.md).
|
|
27
|
+
:::
|
|
28
|
+
|
|
29
|
+
## Step 1 — Pick the entry point
|
|
30
|
+
|
|
31
|
+
Two of these are wrappers over `mmr review` — `review-pr` and `review-code` —
|
|
32
|
+
sharing the same engine and verdict semantics, differing in *scope* and *what
|
|
33
|
+
they synthesize*. `post-implementation-review` is **not** a `mmr review` wrapper:
|
|
34
|
+
it's an independent release-time review of the whole codebase that runs its own
|
|
35
|
+
channel flow and writes its own report under `docs/reviews/`, with MMR
|
|
36
|
+
reconciliation only as an optional add-on. Consult its own doc for specifics.
|
|
37
|
+
|
|
38
|
+
```mermaid
|
|
39
|
+
flowchart TD
|
|
40
|
+
Q{What are you reviewing?} --> A[An open PR]
|
|
41
|
+
Q --> B[Local changes
|
|
42
|
+
before commit/push]
|
|
43
|
+
Q --> C[The whole codebase
|
|
44
|
+
after all tasks land]
|
|
45
|
+
A --> AR["scaffold run review-pr
|
|
46
|
+
(mmr review --pr N)"]
|
|
47
|
+
B --> BR["scaffold run review-code
|
|
48
|
+
(synthesized delivery candidate)"]
|
|
49
|
+
C --> CR["scaffold run post-implementation-review
|
|
50
|
+
(two-phase: systemic + per-story)"]
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
| Entry point | Target | Notes |
|
|
54
|
+
| --- | --- | --- |
|
|
55
|
+
| `scaffold run review-pr` | One PR (`--pr N`, auto-detected from the branch) | **MMR wrapper.** Adds auth checks, the Superpowers agent channel, the per-finding round bookkeeping, an opt-in Beads bridge over a bare `mmr review`. |
|
|
56
|
+
| `scaffold run review-code` | Local pre-push: committed branch diff + staged + unstaged, as one synthesized "delivery candidate" | **MMR wrapper.** Adds the same agent channel + round bounding, plus file & standards context for the file-blind CLIs. **Untracked files are not covered.** |
|
|
57
|
+
| `scaffold run post-implementation-review` | The full implemented codebase against stories + standards | **Independent, not an MMR wrapper.** A release-time review (systemic sweep + per-story functional review via parallel agents) with its own report under `docs/reviews/`; MMR injection is optional. Consult its own doc. |
|
|
58
|
+
|
|
59
|
+
:::callout{type=note}
|
|
60
|
+
**The mandatory one.** After `gh pr create`, running `review-pr` is mandatory
|
|
61
|
+
before moving to the next task (a PostToolUse hook reminds you).
|
|
62
|
+
`review-code` is the recommended preflight before a push but isn't gated.
|
|
63
|
+
`post-implementation-review` is a release-time sweep, not a per-change gate.
|
|
64
|
+
:::
|
|
65
|
+
|
|
66
|
+
### When no wrapper fits
|
|
67
|
+
|
|
68
|
+
The wrappers are conveniences, not gates on the engine. For any target a wrapper
|
|
69
|
+
doesn't cover — a branch range, an existing patch file, a single doc — call
|
|
70
|
+
`mmr review` directly with the matching input flag. The
|
|
71
|
+
[MMR reference](../mmr/index.md) lists every flag; the next step is the workflow
|
|
72
|
+
view of the same choice.
|
|
73
|
+
|
|
74
|
+
## Step 2 — Choose the input mode
|
|
75
|
+
|
|
76
|
+
`mmr review` resolves a diff from exactly one input source. Pick the one that
|
|
77
|
+
describes your target. The `--diff -` (stdin) form is the universal escape hatch:
|
|
78
|
+
anything you can express as a unified diff, you can pipe in.
|
|
79
|
+
|
|
80
|
+
```mermaid
|
|
81
|
+
flowchart TD
|
|
82
|
+
S{Where is the change?} --> PR[On a GitHub PR]
|
|
83
|
+
S --> ST[Staged in the index]
|
|
84
|
+
S --> BR[A branch, vs a base]
|
|
85
|
+
S --> DC[Local working tree:
|
|
86
|
+
committed + staged + unstaged]
|
|
87
|
+
S --> UF[A brand-new file
|
|
88
|
+
git doesn't track yet]
|
|
89
|
+
PR --> PRc["mmr review --pr N"]
|
|
90
|
+
ST --> STc["mmr review --staged"]
|
|
91
|
+
BR --> BRc["mmr review --base main --head BRANCH"]
|
|
92
|
+
DC --> DCc["git diff MERGE_BASE | mmr review --diff -
|
|
93
|
+
(this is what review-code synthesizes)"]
|
|
94
|
+
UF --> UFc["(diff -u /dev/null FILE || true) | mmr review --diff -"]
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
| Target | Command | Notes |
|
|
98
|
+
| --- | --- | --- |
|
|
99
|
+
| A PR | `mmr review --pr 123` | Fetches the diff via `gh pr diff`. This is `review-pr`'s mode. |
|
|
100
|
+
| Staged changes | `mmr review --staged` | Just the index (`git diff --cached`) — the pre-commit slice. |
|
|
101
|
+
| A branch range | `mmr review --base main --head "$BRANCH"` | Committed work only; no staged/unstaged. |
|
|
102
|
+
| Full delivery candidate | `git diff "$MERGE_BASE" \| mmr review --diff -` | Committed branch diff + staged + unstaged in one patch. `review-code` synthesizes this for you. |
|
|
103
|
+
| A single tracked file's pending edits | `git diff HEAD -- path/file.ts \| mmr review --diff -` | Fails with "no diff content" if the file has no local changes — use the next row. |
|
|
104
|
+
| A brand-new / untracked file | `(diff -u /dev/null path/file.ts \|\| true) \| mmr review --diff -` | Synthesizes an "all-added" diff from current contents. |
|
|
105
|
+
| An existing patch | `mmr review --diff path/changes.patch` | Reads diff-format content directly. |
|
|
106
|
+
|
|
107
|
+
:::callout{type=danger}
|
|
108
|
+
**Untracked files are silently skipped — this is the trap.** `review-code`
|
|
109
|
+
reviews the committed branch diff plus staged and unstaged changes *to tracked
|
|
110
|
+
files*. A brand-new file you've never `git add`-ed is **not** in any of those
|
|
111
|
+
diffs, so it sails through review with zero findings — not because it's clean,
|
|
112
|
+
but because no channel ever saw it. To review a new file, pipe it in explicitly:
|
|
113
|
+
`(diff -u /dev/null path/to/new-file.ts || true) | mmr review --diff -`. The
|
|
114
|
+
`|| true` guard is required: `diff` exits non-zero whenever files differ, which
|
|
115
|
+
would otherwise kill the pipeline under `set -o pipefail`. The wrappers cannot
|
|
116
|
+
guess which untracked files you meant to include
|
|
117
|
+
:cite[content/tools/review-code.md:37].
|
|
118
|
+
:::
|
|
119
|
+
|
|
120
|
+
The `--diff` flag expects **diff-format content** — a path to a `.patch`/`.diff`
|
|
121
|
+
file, or `-` for stdin. It does not accept raw document text; wrap the target in
|
|
122
|
+
a diff first.
|
|
123
|
+
|
|
124
|
+
## Step 3 — Read the verdict, then act
|
|
125
|
+
|
|
126
|
+
Every review collapses to exactly one of four verdicts. The verdict, not the raw
|
|
127
|
+
findings, is what decides whether you proceed. The
|
|
128
|
+
[MMR reference](../mmr/index.md) defines the gate, the severity tiers, and the
|
|
129
|
+
exact derivation algorithm; this table is the *action* you take for each outcome.
|
|
130
|
+
|
|
131
|
+
| Verdict | Exit | Do |
|
|
132
|
+
| --- | --- | --- |
|
|
133
|
+
| `pass` | 0 | **Proceed** — merge / push / next task. |
|
|
134
|
+
| `degraded-pass` | 0 | **Proceed**, noting reduced coverage. The max achievable verdict once any channel was compensated. |
|
|
135
|
+
| `blocked` | 2 | **Stop.** Fix the blocking findings (Step 4), then re-review. Do not merge. |
|
|
136
|
+
| `needs-user-decision` | 3 | **Stop and surface to the user.** Automated iteration can't resolve this. |
|
|
137
|
+
|
|
138
|
+
A review is `blocked` when any unacknowledged finding sits at or above the fix
|
|
139
|
+
threshold (:sev[P2]{level=p2} by default; override per-run with
|
|
140
|
+
`--fix-threshold`). See the [MMR reference](../mmr/index.md) for how the verdict
|
|
141
|
+
is derived from gate result + channel health.
|
|
142
|
+
|
|
143
|
+
:::callout{type=warning}
|
|
144
|
+
**Proceed only on `pass` or `degraded-pass`.** On `blocked` or
|
|
145
|
+
`needs-user-decision`, never merge automatically — surface the verdict and the
|
|
146
|
+
remaining findings to the user. The wrappers enforce this: a `blocked` /
|
|
147
|
+
`needs-user-decision` outcome takes the "Stop path" and does **not** print the
|
|
148
|
+
ready-for-merge message :cite[content/tools/review-pr.md:610].
|
|
149
|
+
:::
|
|
150
|
+
|
|
151
|
+
## Step 4 — Fix the blocking findings (bounded)
|
|
152
|
+
|
|
153
|
+
When the verdict is `blocked`, the loop is: fix the findings at or above the
|
|
154
|
+
threshold → re-review → repeat. The guard rail is that this loop is **bounded
|
|
155
|
+
per finding**, so a finding the model can't actually fix doesn't trap you in an
|
|
156
|
+
infinite cycle.
|
|
157
|
+
|
|
158
|
+
### The 3-round-per-finding limit
|
|
159
|
+
|
|
160
|
+
The limit is **3 attempts per finding**, not 3 rounds total. Each round that
|
|
161
|
+
surfaces *genuinely new* findings is healthy iteration — keep going. The loop
|
|
162
|
+
stops only when one specific finding has been attempted three times without
|
|
163
|
+
resolution.
|
|
164
|
+
|
|
165
|
+
A "finding" here is its **stable identity**, not its wording, so a re-worded
|
|
166
|
+
report of the same defect still counts against the same finding. (The
|
|
167
|
+
[MMR reference](../mmr/index.md) covers how that identity is computed.) Co-equal
|
|
168
|
+
stop conditions:
|
|
169
|
+
|
|
170
|
+
- A finding's identity reaches 3 recorded attempts.
|
|
171
|
+
- The same underlying defect recurs across 3 rounds even if the reviewer's
|
|
172
|
+
wording produces a new identity each time.
|
|
173
|
+
- Channels genuinely contradict each other (→ `needs-user-decision`).
|
|
174
|
+
- The user explicitly asks to stop.
|
|
175
|
+
|
|
176
|
+
When you stop, **do not merge**. Document each unresolved finding (severity,
|
|
177
|
+
location, attempt count) and hand the decision to the user
|
|
178
|
+
:cite[content/tools/review-pr.md:610].
|
|
179
|
+
|
|
180
|
+
### Where the bookkeeping lives today
|
|
181
|
+
|
|
182
|
+
The engine ships **native** multi-round sessions — `mmr review --session <id>
|
|
183
|
+
--round N --max-rounds M` :cite[packages/mmr/src/commands/review.ts:289] — and a
|
|
184
|
+
stable, line-number-independent `finding_key`
|
|
185
|
+
:cite[packages/mmr/src/core/stable-id.ts:115]. (See the
|
|
186
|
+
[MMR reference](../mmr/index.md) for how that key collapses the same issue at
|
|
187
|
+
different severities.)
|
|
188
|
+
|
|
189
|
+
The scaffold **wrappers** have not yet migrated to native sessions. Until they
|
|
190
|
+
do, `review-pr` and `review-code` enforce the 3-strike rule with their own
|
|
191
|
+
bookkeeping: a per-session attempts file at
|
|
192
|
+
`.scaffold/review-attempts/<session-id>.json`. Each fix round computes a hash
|
|
193
|
+
over the same four identity components, increments that finding's counter, and
|
|
194
|
+
the `_review_at_strike_limit` helper blocks once it hits 3
|
|
195
|
+
:cite[content/tools/review-pr.md:468]. The wrapper hash deliberately mirrors the
|
|
196
|
+
engine's `finding_key` components, so the eventual swap to
|
|
197
|
+
`mmr review --session` is a clean migration rather than a re-think.
|
|
198
|
+
|
|
199
|
+
:::callout{type=note}
|
|
200
|
+
**Practical takeaway.** You drive the fix loop through the wrapper; the attempts
|
|
201
|
+
file under `.scaffold/review-attempts/` is the current source of truth for the
|
|
202
|
+
strike count. For a very noisy loop you may narrow the gate for one run with
|
|
203
|
+
`--fix-threshold P1` — but don't permanently lower the project default (P2).
|
|
204
|
+
:::
|
|
205
|
+
|
|
206
|
+
## Step 5 — Handle degraded mode
|
|
207
|
+
|
|
208
|
+
A review never silently runs with fewer reviewers. A channel is *degraded* when
|
|
209
|
+
its binary isn't installed, auth fails, it times out, or it errors out. The
|
|
210
|
+
workflow's response is to **compensate and tell you how to recover**, then cap
|
|
211
|
+
the verdict at `degraded-pass`. The mechanics — how compensation runs and the
|
|
212
|
+
per-channel auth checks — live in the [MMR reference](../mmr/index.md); below is
|
|
213
|
+
what it means for *your* workflow.
|
|
214
|
+
|
|
215
|
+
- **Compensating pass.** For each degraded *external* channel, MMR runs a
|
|
216
|
+
compensating pass focused on that channel's strength area and records the
|
|
217
|
+
source as `compensating-<channel>` :cite[packages/mmr/src/core/compensator.ts:162].
|
|
218
|
+
The compensator defaults to `claude -p` unless `defaults.compensator.channel`
|
|
219
|
+
overrides it :cite[packages/mmr/src/core/compensator.ts:74]. These findings
|
|
220
|
+
are single-source, low confidence. With the default compensator, a missing
|
|
221
|
+
Claude CLI has no compensator of its own. (The bracket labels like
|
|
222
|
+
`[compensating: Grok-equivalent]` you'll see are the *manual fallback* summary
|
|
223
|
+
wording, distinct from the engine's `compensating-<channel>` source name.)
|
|
224
|
+
- **Auth recovery is never silent.** The workflow surfaces the exact recovery
|
|
225
|
+
command for the failed channel; the channel's `recovery` string drives this
|
|
226
|
+
:cite[packages/mmr/src/core/auth.ts:65]. See the
|
|
227
|
+
[MMR reference](../mmr/index.md) for the per-channel auth-check + recovery
|
|
228
|
+
table.
|
|
229
|
+
|
|
230
|
+
:::callout{type=warning}
|
|
231
|
+
**Foreground only.** When the `mmr` CLI is unavailable and a wrapper falls back
|
|
232
|
+
to invoking Codex / Gemini / Claude / Grok directly, run them as **foreground**
|
|
233
|
+
Bash calls — never with `run_in_background`, `&`, or `nohup`. Background
|
|
234
|
+
execution produces empty output, which the parser then reads as a degraded
|
|
235
|
+
channel :cite[content/tools/review-code.md:265].
|
|
236
|
+
:::
|
|
237
|
+
|
|
238
|
+
Once any channel was compensated, the best possible verdict is
|
|
239
|
+
`degraded-pass` — full `pass` requires all channels to have completed for real.
|
|
240
|
+
|
|
241
|
+
## See also
|
|
242
|
+
|
|
243
|
+
- [MMR reference](../mmr/index.md){mode=advisory} — channels, reconciliation,
|
|
244
|
+
the `finding_key`, verdict internals, and `.mmr.yaml`.
|
|
245
|
+
- The wrapper meta-prompts themselves:
|
|
246
|
+
:cite[content/tools/review-pr.md:15]{mode=advisory},
|
|
247
|
+
:cite[content/tools/review-code.md:16]{mode=advisory}, and
|
|
248
|
+
:cite[content/tools/post-implementation-review.md:16]{mode=advisory}.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.1.0
|
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
name: backend-api-design
|
|
3
3
|
description: REST maturity levels, GraphQL schema-first design, gRPC protobuf conventions, tRPC router patterns, API versioning strategies, pagination, and filtering
|
|
4
4
|
topics: [backend, api-design, rest, graphql, grpc, trpc, versioning, pagination]
|
|
5
|
+
volatility: evolving
|
|
6
|
+
last-reviewed: null
|
|
7
|
+
version-pin: null
|
|
8
|
+
sources:
|
|
9
|
+
- url: https://spec.openapis.org/oas/latest.html
|
|
10
|
+
- url: https://spec.graphql.org/
|
|
11
|
+
- url: https://www.rfc-editor.org/rfc/rfc9110.html
|
|
12
|
+
- url: https://martinfowler.com/articles/richardsonMaturityModel.html
|
|
5
13
|
---
|
|
6
14
|
|
|
7
15
|
API design is a long-lived contract. Every structural decision — URL shape, error format, pagination scheme, versioning strategy — is expensive to change after consumers depend on it. Design APIs from the consumer's perspective first. The best API is one where new developers can predict the shape of an endpoint they have never seen before, because every other endpoint follows the same patterns.
|
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
name: backend-architecture
|
|
3
3
|
description: Monolith vs microservices decision framework, layered architecture patterns, CQRS, event sourcing, hexagonal architecture, and service mesh considerations
|
|
4
4
|
topics: [backend, architecture, microservices, monolith, cqrs, event-sourcing, hexagonal, clean-architecture]
|
|
5
|
+
volatility: evolving
|
|
6
|
+
last-reviewed: null
|
|
7
|
+
version-pin: null
|
|
8
|
+
sources:
|
|
9
|
+
- url: https://microservices.io/patterns/
|
|
10
|
+
- url: https://martinfowler.com/bliki/CQRS.html
|
|
11
|
+
- url: https://martinfowler.com/eaaDev/EventSourcing.html
|
|
12
|
+
- url: https://martinfowler.com/bliki/MonolithFirst.html
|
|
5
13
|
---
|
|
6
14
|
|
|
7
15
|
Backend architecture is the set of structural decisions that determine how the system scales, how teams work independently, and how expensive future changes will be. The single most common backend architecture mistake is choosing microservices before the problem demands them. Start with the simplest architecture that solves the current problem, and evolve to complexity only when specific pain points — not hypothetical future ones — force the change.
|
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
name: backend-async-patterns
|
|
3
3
|
description: Message queue patterns, event-driven architecture, saga patterns, retry strategies, and idempotency keys
|
|
4
4
|
topics: [backend, async, message-queues, event-driven, saga, retry, idempotency, cqrs]
|
|
5
|
+
volatility: evolving
|
|
6
|
+
last-reviewed: null
|
|
7
|
+
version-pin: null
|
|
8
|
+
sources:
|
|
9
|
+
- url: https://microservices.io/patterns/data/saga.html
|
|
10
|
+
- url: https://martinfowler.com/articles/patterns-of-distributed-systems/
|
|
11
|
+
- url: https://sre.google/sre-book/handling-overload/
|
|
5
12
|
---
|
|
6
13
|
|
|
7
14
|
Asynchronous patterns decouple services in time and space, enabling systems to absorb load spikes, survive partial failures, and scale independently — but they introduce delivery guarantees and consistency tradeoffs that must be designed for explicitly from the start.
|
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
name: backend-auth-patterns
|
|
3
3
|
description: JWT lifecycle, OAuth2 authorization code flow, API key management, and service-to-service authentication
|
|
4
4
|
topics: [backend, auth, jwt, oauth2, api-keys, mtls, security]
|
|
5
|
+
volatility: evolving
|
|
6
|
+
last-reviewed: null
|
|
7
|
+
version-pin: null
|
|
8
|
+
sources:
|
|
9
|
+
- url: https://www.rfc-editor.org/rfc/rfc6749
|
|
10
|
+
- url: https://www.rfc-editor.org/rfc/rfc7519
|
|
11
|
+
- url: https://www.rfc-editor.org/rfc/rfc7636
|
|
12
|
+
- url: https://openid.net/specs/openid-connect-core-1_0.html
|
|
13
|
+
- url: https://owasp.org/www-project-api-security/
|
|
5
14
|
---
|
|
6
15
|
|
|
7
16
|
Authentication and authorization are the first line of defense for any backend service — mistakes here compromise the entire system, making it essential to use proven patterns like JWTs with rotation, OAuth2 with PKCE, and workload identity from the start.
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
name: backend-conventions
|
|
3
3
|
description: Service and handler naming conventions, structured error handling patterns, structured logging with correlation IDs, and file organization standards for backend codebases
|
|
4
4
|
topics: [backend, conventions, error-handling, logging, naming, file-organization]
|
|
5
|
+
volatility: stable
|
|
6
|
+
last-reviewed: null
|
|
7
|
+
version-pin: null
|
|
8
|
+
sources:
|
|
9
|
+
- url: https://google.github.io/styleguide/
|
|
10
|
+
- url: https://martinfowler.com/tags/clean%20code.html
|
|
5
11
|
---
|
|
6
12
|
|
|
7
13
|
Consistent conventions in a backend codebase reduce cognitive load, make code reviewable at a glance, and prevent entire classes of bugs. Naming, error handling, and logging are the three highest-leverage areas — they touch every layer of the stack and every engineer on the team. Establish these conventions before the first PR, codify them in linting rules where possible, and treat violations as blocking review comments.
|
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
name: backend-data-modeling
|
|
3
3
|
description: Relational vs document modeling tradeoffs, migration strategies, connection pooling, ORM vs query builder tradeoffs, multi-tenancy patterns, and eventual consistency
|
|
4
4
|
topics: [backend, data-modeling, database, migrations, orm, multi-tenancy, eventual-consistency, connection-pooling]
|
|
5
|
+
volatility: stable
|
|
6
|
+
last-reviewed: null
|
|
7
|
+
version-pin: null
|
|
8
|
+
sources:
|
|
9
|
+
- url: https://www.postgresql.org/docs/current/
|
|
10
|
+
- url: https://martinfowler.com/articles/evodb.html
|
|
11
|
+
- url: https://microservices.io/patterns/data/database-per-service.html
|
|
5
12
|
---
|
|
6
13
|
|
|
7
14
|
Data modeling decisions have the highest reversal cost of any backend choice. A schema design that seemed reasonable at launch can become an operational crisis at scale — queries that worked at 10,000 rows fail at 100 million. The goal is to match the data model to the access patterns of the application, not to normalize for its own sake or to denormalize prematurely. Design the schema with the queries in mind from day one.
|
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
name: backend-deployment
|
|
3
3
|
description: Containerization best practices, serverless patterns, health check endpoints, graceful shutdown, and deployment strategies
|
|
4
4
|
topics: [backend, deployment, docker, serverless, health-checks, graceful-shutdown, blue-green, canary]
|
|
5
|
+
volatility: evolving
|
|
6
|
+
last-reviewed: null
|
|
7
|
+
version-pin: null
|
|
8
|
+
sources:
|
|
9
|
+
- url: https://martinfowler.com/bliki/BlueGreenDeployment.html
|
|
10
|
+
- url: https://martinfowler.com/bliki/CanaryRelease.html
|
|
11
|
+
- url: https://sre.google/sre-book/release-engineering/
|
|
12
|
+
- url: https://docs.aws.amazon.com/whitepapers/latest/overview-deployment-options/welcome.html
|
|
5
13
|
---
|
|
6
14
|
|
|
7
15
|
Deployment reliability is a multiplier on every other engineering investment — a well-written service that deploys poorly will cause more incidents than a mediocre service that deploys safely and rolls back cleanly.
|
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
name: backend-dev-environment
|
|
3
3
|
description: Docker Compose for local databases and queues, database seeding and migration scripts, API testing tools, environment variable management, and local SSL setup
|
|
4
4
|
topics: [backend, dev-environment, docker, migrations, testing, environment-variables]
|
|
5
|
+
volatility: evolving
|
|
6
|
+
last-reviewed: null
|
|
7
|
+
version-pin: null
|
|
8
|
+
sources:
|
|
9
|
+
- url: https://www.postgresql.org/docs/current/
|
|
5
10
|
---
|
|
6
11
|
|
|
7
12
|
A backend development environment that requires manual setup steps is a productivity drain and an onboarding failure. The standard should be: clone the repo, run one command, and have a fully functional local environment in under five minutes. Docker Compose is the primary tool for achieving this — it pins the exact versions of every external dependency and makes the environment reproducible across all developer machines.
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
name: backend-fintech-broker-integration
|
|
3
3
|
description: Multi-broker adapter pattern; credential rotation; error harmonization; rate-limit management; broker-side quirks.
|
|
4
4
|
topics: [backend, fintech, brokers, integration, adapter-pattern, rate-limits, credentials, retry]
|
|
5
|
+
volatility: evolving
|
|
6
|
+
last-reviewed: null
|
|
7
|
+
version-pin: null
|
|
8
|
+
sources:
|
|
9
|
+
- url: https://microservices.io/patterns/reliability/circuit-breaker.html
|
|
10
|
+
- url: https://martinfowler.com/bliki/CircuitBreaker.html
|
|
5
11
|
---
|
|
6
12
|
|
|
7
13
|
A fintech backend that routes orders or reads positions across more than one broker inherits the union of every broker's quirks, outages, auth schemes, and undocumented behaviors. The broker-integration layer exists to hide that mess behind one normalized internal contract so the rest of the system — risk, order lifecycle, ledger, UI — can stay clean. This doc covers the adapter contract, credential handling, error harmonization, rate-limit strategy, and the specific pitfalls that recur regardless of which brokers you connect.
|
|
@@ -2,13 +2,21 @@
|
|
|
2
2
|
name: backend-fintech-compliance
|
|
3
3
|
description: PCI-DSS, SOC 2, SEC/FINRA regulations for consumer/B2B fintech backends; audit trail immutability; data retention; segregation of duties.
|
|
4
4
|
topics: [backend, fintech, compliance, pci-dss, soc2, sec, finra, audit-trail, gdpr]
|
|
5
|
+
volatility: evolving
|
|
6
|
+
last-reviewed: null
|
|
7
|
+
version-pin: 'PCI-DSS v4.0.1'
|
|
8
|
+
sources:
|
|
9
|
+
- url: https://www.pcisecuritystandards.org/document_library/
|
|
10
|
+
- url: https://www.aicpa-cima.com/topic/audit-assurance
|
|
11
|
+
- url: https://www.finra.org/rules-guidance/rulebooks/finra-rules
|
|
12
|
+
- url: https://eur-lex.europa.eu/eli/reg/2016/679/oj
|
|
5
13
|
---
|
|
6
14
|
|
|
7
15
|
Fintech compliance is not a checklist applied at the end — it determines schema design, deployment pipelines, and system boundaries. Most regulations apply based on what a service *touches* (cards, trades, PII), so scope reduction is the single highest-leverage design decision available to engineering. This doc covers the regulatory regimes a typical US/EU fintech encounters, the audit-trail patterns they demand, and concrete implementation choices that keep audits survivable.
|
|
8
16
|
|
|
9
17
|
## Summary
|
|
10
18
|
|
|
11
|
-
Which regulations apply depends on what the service handles. Handling card data (PAN, CVV, track data) triggers PCI-DSS v4.0. Storing customer PII, financial records, or operating as a service provider to regulated firms triggers SOC 2 Type II expectations from customers and GLBA obligations (US financial privacy). Executing securities trades or routing orders triggers SEC Rule 17a-4 record retention and FINRA supervisory requirements. Operating in the EU triggers GDPR and — for crypto — MiCA. Serving retail vs institutional customers changes consumer-protection obligations (Reg Z, Reg E, CFPB oversight vs institutional carve-outs).
|
|
19
|
+
Which regulations apply depends on what the service handles. Handling card data (PAN, CVV, track data) triggers PCI-DSS v4.0.1. Storing customer PII, financial records, or operating as a service provider to regulated firms triggers SOC 2 Type II expectations from customers and GLBA obligations (US financial privacy). Executing securities trades or routing orders triggers SEC Rule 17a-4 record retention and FINRA supervisory requirements. Operating in the EU triggers GDPR and — for crypto — MiCA. Serving retail vs institutional customers changes consumer-protection obligations (Reg Z, Reg E, CFPB oversight vs institutional carve-outs).
|
|
12
20
|
|
|
13
21
|
Compliance cost scales with scope, not with traffic. A service that never sees raw PANs is *out of scope* for most PCI-DSS controls. A microservice that only handles trade metadata (not orders themselves) may be out of the SEC 17a-4 retention perimeter. Practical scope-reduction strategies: tokenize at the edge (Stripe, Marqeta, Basis Theory) so internal services only ever see tokens; keep regulated datastores (ledger, order book, card vault) in dedicated VPCs with narrow IAM; route regulated-data logs to a separate SIEM stream so the main observability stack stays out of scope; design SDK boundaries where PII-sensitive fields are never emitted to general-purpose workers.
|
|
14
22
|
|
|
@@ -22,7 +30,7 @@ Encryption is assumed baseline: TLS 1.2+ in transit (1.3 preferred), AES-256 at
|
|
|
22
30
|
|
|
23
31
|
### PCI-DSS Scoping and Tokenization
|
|
24
32
|
|
|
25
|
-
PCI-DSS v4.0 applies to any system that stores, processes, or transmits cardholder data (CHD) — the Primary Account Number (PAN), cardholder name, expiration date, service code — or sensitive authentication data (full track, CVV, PIN). The cost of compliance is roughly quadratic in the scope of the "cardholder data environment" (CDE): every service inside the CDE needs quarterly ASV scans, annual penetration tests, hardened configurations, FIM, and quarterly access reviews.
|
|
33
|
+
PCI-DSS v4.0.1 applies to any system that stores, processes, or transmits cardholder data (CHD) — the Primary Account Number (PAN), cardholder name, expiration date, service code — or sensitive authentication data (full track, CVV, PIN). The cost of compliance is roughly quadratic in the scope of the "cardholder data environment" (CDE): every service inside the CDE needs quarterly ASV scans, annual penetration tests, hardened configurations, FIM, and quarterly access reviews.
|
|
26
34
|
|
|
27
35
|
**Scope reduction via tokenization** is the dominant pattern. Instead of your application receiving raw PANs, the card is submitted directly from the browser/mobile app to a tokenization provider (Stripe Elements, Braintree Hosted Fields, Marqeta, Basis Theory, Very Good Security) which returns an opaque token. Your backend stores only the token. The card vault is the provider's CDE; your systems are *SAQ A* eligible (the lightest form).
|
|
28
36
|
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
name: backend-fintech-data-modeling
|
|
3
3
|
description: Financial data models; currency handling; decimal precision; positions, trades, prices; time-series designs.
|
|
4
4
|
topics: [backend, fintech, data-modeling, decimal, currency, time-series, positions, trades]
|
|
5
|
+
volatility: stable
|
|
6
|
+
last-reviewed: null
|
|
7
|
+
version-pin: null
|
|
8
|
+
sources:
|
|
9
|
+
- url: https://www.postgresql.org/docs/current/datatype-numeric.html
|
|
10
|
+
- url: https://www.iso.org/iso-4217-currency-codes.html
|
|
5
11
|
---
|
|
6
12
|
|
|
7
13
|
Financial data modeling is where most fintech bugs are born: a float creeps into a money field, a currency is implied instead of stored, a tick table grows unbounded, or a `current_position` column drifts from the journal. This doc covers the non-negotiable shapes of money, quantity, and price data, and the time-series and derived-view patterns that keep a trading or banking system honest at scale.
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
name: backend-fintech-ledger
|
|
3
3
|
description: Double-entry accounting for fintech ledgers; journal vs ledger tables; idempotent posting; reconciliation patterns; balance invariants.
|
|
4
4
|
topics: [backend, fintech, ledger, double-entry, accounting, reconciliation, idempotency, invariants]
|
|
5
|
+
volatility: stable
|
|
6
|
+
last-reviewed: null
|
|
7
|
+
version-pin: null
|
|
8
|
+
sources:
|
|
9
|
+
- url: https://martinfowler.com/eaaCatalog/
|
|
10
|
+
- url: https://www.postgresql.org/docs/current/ddl-constraints.html
|
|
5
11
|
---
|
|
6
12
|
|
|
7
13
|
A fintech ledger is the authoritative record of money movement; if it is wrong, nothing else in the system can be trusted. The discipline is borrowed intact from 700 years of double-entry bookkeeping — not a new invention, and not negotiable. This doc covers the invariants, schema shape, idempotent posting mechanics, and reconciliation patterns that keep a ledger survivable at production scale.
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
name: backend-fintech-observability
|
|
3
3
|
description: Trade event correlation; market-hours aware scheduling; SLOs for fintech systems; compliance logging; alerting strategy.
|
|
4
4
|
topics: [backend, fintech, observability, tracing, slos, alerting, correlation-id, market-hours]
|
|
5
|
+
volatility: evolving
|
|
6
|
+
last-reviewed: null
|
|
7
|
+
version-pin: null
|
|
8
|
+
sources:
|
|
9
|
+
- url: https://opentelemetry.io/docs/
|
|
10
|
+
- url: https://sre.google/sre-book/service-level-objectives/
|
|
5
11
|
---
|
|
6
12
|
|
|
7
13
|
Observability for a trading system is not generic APM with a finance skin — it is the ability to reconstruct any single order, end to end, across six or more services, on demand, years later, with timezone-correct timestamps and a stable correlation identifier. It is also the early-warning system that catches a sudden drop in fill rate at 09:31 ET before the desk calls. Done well it overlaps with — but does not replace — the immutable audit trail (`backend-fintech-compliance.md`).
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
name: backend-fintech-order-lifecycle
|
|
3
3
|
description: Order state machine; fills, partial fills, cancellation; event-driven order tracking; idempotency; handling "unknown" states.
|
|
4
4
|
topics: [backend, fintech, orders, state-machine, fills, partial-fills, event-driven, webhooks]
|
|
5
|
+
volatility: evolving
|
|
6
|
+
last-reviewed: null
|
|
7
|
+
version-pin: null
|
|
8
|
+
sources:
|
|
9
|
+
- url: https://microservices.io/patterns/data/saga.html
|
|
10
|
+
- url: https://martinfowler.com/articles/patterns-of-distributed-systems/
|
|
5
11
|
---
|
|
6
12
|
|
|
7
13
|
Orders in a trading system are long-lived, asynchronous, externally mutated objects — the exact shape of problem a disciplined state machine is built for. This doc covers the canonical states and transitions, how fills and partial fills land, why "unknown" is a real state you cannot wish away, and the reconciliation posture that keeps internal bookkeeping aligned with the broker of record.
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
name: backend-fintech-risk-management
|
|
3
3
|
description: Position limits, drawdown caps, circuit breakers, kill switches; pre-trade and post-trade risk checks; operational risk controls.
|
|
4
4
|
topics: [backend, fintech, risk, position-limits, drawdown, circuit-breakers, kill-switch, pre-trade-checks]
|
|
5
|
+
volatility: evolving
|
|
6
|
+
last-reviewed: null
|
|
7
|
+
version-pin: null
|
|
8
|
+
sources:
|
|
9
|
+
- url: https://martinfowler.com/bliki/CircuitBreaker.html
|
|
10
|
+
- url: https://microservices.io/patterns/reliability/circuit-breaker.html
|
|
5
11
|
---
|
|
6
12
|
|
|
7
13
|
Risk management in a trading system is the set of controls that stops a bad day from becoming a catastrophic one. It lives in two places: *before* an order goes to the broker (pre-trade checks that block) and *after* fills land (post-trade monitoring that alerts, throttles, or halts). Neither half is optional, and both are exercised continuously, not just during incidents.
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
name: backend-fintech-testing
|
|
3
3
|
description: Deterministic backtests; financial-accuracy tests; broker sandbox testing; regulatory edge-case coverage.
|
|
4
4
|
topics: [backend, fintech, testing, determinism, backtesting, sandbox, accuracy, property-based]
|
|
5
|
+
volatility: evolving
|
|
6
|
+
last-reviewed: null
|
|
7
|
+
version-pin: null
|
|
8
|
+
sources:
|
|
9
|
+
- url: https://docs.pact.io/
|
|
10
|
+
- url: https://martinfowler.com/articles/practical-test-pyramid.html
|
|
5
11
|
---
|
|
6
12
|
|
|
7
13
|
Fintech tests have unusual requirements: bit-exact numeric accuracy, full determinism across runs and hosts, rich regulatory edge-case coverage, and realistic multi-session flows that span market-hours boundaries. A flakey fintech test is worse than no test — it hides the exact race conditions that cause real money to move incorrectly. This doc covers the patterns that keep backtests reproducible, numeric tests honest, broker integrations verifiable, and regulatory behavior exercised before it becomes an incident.
|
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
name: backend-observability
|
|
3
3
|
description: Structured logging, distributed tracing, RED method metrics, SLO-based alerting, and operational dashboards
|
|
4
4
|
topics: [backend, observability, logging, tracing, metrics, alerting, opentelemetry, slo]
|
|
5
|
+
volatility: evolving
|
|
6
|
+
last-reviewed: null
|
|
7
|
+
version-pin: null
|
|
8
|
+
sources:
|
|
9
|
+
- url: https://opentelemetry.io/docs/
|
|
10
|
+
- url: https://sre.google/sre-book/service-level-objectives/
|
|
11
|
+
- url: https://sre.google/sre-book/monitoring-distributed-systems/
|
|
5
12
|
---
|
|
6
13
|
|
|
7
14
|
Observability is the ability to answer arbitrary questions about a system's behavior using its outputs alone — without deploying new code. Investing in structured logging, distributed tracing, and SLO-based alerting before the first incident makes the difference between a 5-minute diagnosis and a 5-hour outage.
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
name: backend-project-structure
|
|
3
3
|
description: Canonical directory layout for backend services — routes/controllers, services, models/repositories, middleware, utils, config resolution, and dependency injection patterns
|
|
4
4
|
topics: [backend, project-structure, architecture, dependency-injection, layers]
|
|
5
|
+
volatility: stable
|
|
6
|
+
last-reviewed: null
|
|
7
|
+
version-pin: null
|
|
8
|
+
sources:
|
|
9
|
+
- url: https://martinfowler.com/eaaCatalog/
|
|
10
|
+
- url: https://martinfowler.com/articles/injection.html
|
|
5
11
|
---
|
|
6
12
|
|
|
7
13
|
A well-organized backend project is readable to a new engineer in minutes. The directory layout should communicate the architecture: which layer owns which responsibility, where to add a new feature, and where to find any piece of behavior. The most common structural failure is mixing concerns — business logic in controllers, database calls in services, HTTP parsing in repositories. Enforce boundaries through structure first, tooling second.
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
name: backend-requirements
|
|
3
3
|
description: API-first design principles, SLA requirements (latency p99, uptime, throughput), scalability targets, backwards compatibility commitments, and API versioning strategy
|
|
4
4
|
topics: [backend, requirements, sla, api, versioning, scalability, performance]
|
|
5
|
+
volatility: stable
|
|
6
|
+
last-reviewed: null
|
|
7
|
+
version-pin: null
|
|
8
|
+
sources:
|
|
9
|
+
- url: https://spec.openapis.org/oas/latest.html
|
|
10
|
+
- url: https://sre.google/sre-book/service-level-objectives/
|
|
5
11
|
---
|
|
6
12
|
|
|
7
13
|
Backend requirements are the contract the service makes with its consumers — other teams, external developers, and end users. Setting explicit SLAs, versioning policies, and scalability targets before any code is written eliminates the most expensive class of late-breaking architectural changes. A backend that surprises its callers with latency spikes or breaking changes destroys trust and creates cascading toil.
|
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
name: backend-security
|
|
3
3
|
description: Input validation, SQL injection prevention, rate limiting, OWASP API Security Top 10, secrets management, and dependency auditing
|
|
4
4
|
topics: [backend, security, validation, sql-injection, rate-limiting, owasp, secrets]
|
|
5
|
+
volatility: evolving
|
|
6
|
+
last-reviewed: null
|
|
7
|
+
version-pin: null
|
|
8
|
+
sources:
|
|
9
|
+
- url: https://owasp.org/www-project-api-security/
|
|
10
|
+
- url: https://owasp.org/www-project-top-ten/
|
|
11
|
+
- url: https://owasp.org/www-project-cheat-sheets/
|
|
5
12
|
---
|
|
6
13
|
|
|
7
14
|
Security vulnerabilities in backend services are disproportionately expensive to fix after launch — building in input validation, injection prevention, rate limiting, and secrets hygiene from the start is always cheaper than retrofitting them under pressure after a breach.
|
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
name: backend-testing
|
|
3
3
|
description: API integration tests, contract testing, database testing patterns, mocking external services, and load testing
|
|
4
4
|
topics: [backend, testing, integration-tests, contract-testing, database-testing, mocking, load-testing]
|
|
5
|
+
volatility: stable
|
|
6
|
+
last-reviewed: null
|
|
7
|
+
version-pin: null
|
|
8
|
+
sources:
|
|
9
|
+
- url: https://docs.pact.io/
|
|
10
|
+
- url: https://martinfowler.com/articles/practical-test-pyramid.html
|
|
11
|
+
- url: https://martinfowler.com/bliki/ContractTest.html
|
|
5
12
|
---
|
|
6
13
|
|
|
7
14
|
Backend testing strategy determines how much confidence you have before every deploy — a well-layered test suite catches regressions at the fastest possible feedback loop while still exercising the real data layer and honoring API contracts with consumers.
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
name: backend-worker-patterns
|
|
3
3
|
description: Background job frameworks, cron scheduling, event consumers, dead letter queues, retry strategies, and graceful shutdown for workers
|
|
4
4
|
topics: [backend, workers, bullmq, celery, temporal, cron, background-jobs, dlq]
|
|
5
|
+
volatility: evolving
|
|
6
|
+
last-reviewed: null
|
|
7
|
+
version-pin: null
|
|
8
|
+
sources:
|
|
9
|
+
- url: https://microservices.io/patterns/data/transactional-outbox.html
|
|
10
|
+
- url: https://sre.google/sre-book/handling-overload/
|
|
5
11
|
---
|
|
6
12
|
|
|
7
13
|
Background workers offload time-consuming and deferred work from the request path, but they introduce their own failure modes — jobs that silently vanish, duplicate executions, and unclean shutdowns during deploys all require deliberate design to prevent.
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
name: browser-extension-architecture
|
|
3
3
|
description: Component isolation across content scripts, background service workers, and popup pages; message passing patterns; and state synchronization strategies
|
|
4
4
|
topics: [browser-extension, architecture, message-passing, state-synchronization, service-worker, content-scripts]
|
|
5
|
+
volatility: evolving
|
|
6
|
+
last-reviewed: null
|
|
7
|
+
version-pin: 'Manifest V3'
|
|
8
|
+
sources:
|
|
9
|
+
- url: https://developer.chrome.com/docs/extensions/mv3/architecture-overview
|
|
10
|
+
- url: https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension
|
|
5
11
|
---
|
|
6
12
|
|
|
7
13
|
Browser extension architecture is fundamentally different from web app architecture because the application is split across multiple isolated execution environments that cannot share memory directly. Content scripts run inside host pages but in an isolated JavaScript world. Service workers run in a separate context that is terminated and re-created between events. Popup pages are ephemeral — they exist only while the popup is open. These constraints drive every architectural decision: communication is via message passing, state must be externalized to `chrome.storage`, and every component must tolerate being initialized from scratch at any time.
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
name: browser-extension-content-scripts
|
|
3
3
|
description: DOM manipulation from content scripts, isolated worlds, CSS injection, and communicating with the host page via postMessage
|
|
4
4
|
topics: [browser-extension, content-scripts, dom-manipulation, isolated-worlds, css-injection, postmessage]
|
|
5
|
+
volatility: fast-moving
|
|
6
|
+
last-reviewed: null
|
|
7
|
+
version-pin: 'Manifest V3'
|
|
8
|
+
sources:
|
|
9
|
+
- url: https://developer.chrome.com/docs/extensions/develop/concepts/content-scripts
|
|
10
|
+
- url: https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_scripts
|
|
5
11
|
---
|
|
6
12
|
|
|
7
13
|
Content scripts are the extension's interface with the web page. They run inside the page's DOM but in an isolated JavaScript world — they see the same HTML and can manipulate the same elements, but they cannot access the page's JavaScript variables or prototype chain without explicitly crossing the world boundary. Understanding this isolation is essential for writing content scripts that are both functional and secure.
|