@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,387 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: The Scaffold Pipeline
|
|
3
|
+
topic: pipeline
|
|
4
|
+
description: The 16-phase meta-prompt pipeline — phases, dependencies, conditional steps, methodology depth, and how to navigate it
|
|
5
|
+
category: concepts
|
|
6
|
+
order: 10
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## The mental model
|
|
10
|
+
|
|
11
|
+
Scaffold is a **prompt pipeline**: a curated, ordered sequence of structured
|
|
12
|
+
meta-prompts that turn an idea into a fully-specified, build-ready project. Each
|
|
13
|
+
meta-prompt is a markdown file under `content/pipeline/`; the CLI assembles one
|
|
14
|
+
into a full prompt at runtime (injecting upstream artifacts, knowledge entries,
|
|
15
|
+
and depth instructions) and hands it to Claude Code or another AI tool.
|
|
16
|
+
|
|
17
|
+
The pipeline divides cleanly into two regimes:
|
|
18
|
+
|
|
19
|
+
- **Planning (phases 0–14)** — *stateful*, *sequential* steps. Each produces a
|
|
20
|
+
durable artifact (a vision doc, a PRD, a tech-stack doc, an implementation
|
|
21
|
+
plan…). The CLI tracks completion in `.scaffold/state.json`, enforces
|
|
22
|
+
dependencies, and detects when you re-run a step (UPDATE mode). You run each
|
|
23
|
+
step roughly once, in dependency order, working *toward* a frozen spec.
|
|
24
|
+
- **Build (phase 15)** — *stateless*, *on-demand* steps. These are the execution
|
|
25
|
+
loops (single-agent, multi-agent), the resume commands, quick-task, and
|
|
26
|
+
new-enhancement. They carry no completion state and can be run repeatedly
|
|
27
|
+
(`stateless: true` in frontmatter — :cite[src/types/frontmatter.ts:126]). You
|
|
28
|
+
run these *over and over* while actually writing code.
|
|
29
|
+
|
|
30
|
+
The 16 phases are the single source of truth in code: the `PHASES` constant
|
|
31
|
+
(:cite[src/types/frontmatter.ts:6]) defines every slug, number, and display
|
|
32
|
+
name. Everything in this guide is anchored to it.
|
|
33
|
+
|
|
34
|
+
:::callout{type=note}
|
|
35
|
+
**89 meta-prompts, not 89 steps you run.** The pipeline directory holds 89 files
|
|
36
|
+
across 16 phase directories, but most projects run only a fraction. Game,
|
|
37
|
+
multi-service, and platform-specific steps are disabled unless an overlay turns
|
|
38
|
+
them on, and many steps are conditional (see [Methodology & depth](#methodology--depth)).
|
|
39
|
+
:::
|
|
40
|
+
|
|
41
|
+
## The 16 phases at a glance
|
|
42
|
+
|
|
43
|
+
Phase numbers and display names below are quoted verbatim from the `PHASES`
|
|
44
|
+
constant (:cite[src/types/frontmatter.ts:6]). Phases 0–14 are planning; phase 15
|
|
45
|
+
is the stateless build phase.
|
|
46
|
+
|
|
47
|
+
:::filter-table
|
|
48
|
+
| # | slug | name | what it produces |
|
|
49
|
+
| --- | --- | --- | --- |
|
|
50
|
+
| 0 | `vision` | Product Vision | A strategic vision document — who it's for, what's different, what success looks like |
|
|
51
|
+
| 1 | `pre` | Product Definition | The PRD, then user stories with testable acceptance criteria |
|
|
52
|
+
| 2 | `foundation` | Project Foundation | Tech-stack decisions, coding standards (+ linter configs), TDD strategy, project structure |
|
|
53
|
+
| 3 | `environment` | Development Environment | One-command dev env, design system (web), git workflow + CI, optional PR review, AI memory |
|
|
54
|
+
| 4 | `integration` | Testing Integration | E2E setup — Playwright (web) or Maestro (mobile); auto-skips for backend-only |
|
|
55
|
+
| 5 | `modeling` | Domain Modeling | Core entities, relationships, invariants, domain events — a shared vocabulary |
|
|
56
|
+
| 6 | `decisions` | Architecture Decisions | An ADR per significant technology/design decision, with alternatives + rationale |
|
|
57
|
+
| 7 | `architecture` | System Architecture | The system blueprint — components, data flow, where code lives, extension points |
|
|
58
|
+
| 8 | `specification` | Specifications | Per-layer interface specs — DB schema, API contracts, UX spec (each conditional) |
|
|
59
|
+
| 9 | `quality` | Quality Gates | Testing review, test skeletons, evals, operations/deploy plan, security review |
|
|
60
|
+
| 10 | `parity` | Platform Parity | Cross-platform gap audit (multi-platform only; auto-skips otherwise) |
|
|
61
|
+
| 11 | `consolidation` | Consolidation | CLAUDE.md optimization + workflow-doc consistency audit |
|
|
62
|
+
| 12 | `planning` | Planning | The implementation plan — stories decomposed into small, dependency-ordered tasks |
|
|
63
|
+
| 13 | `validation` | Validation | Seven cross-cutting pre-implementation audits (scope, cycles, traceability, …) |
|
|
64
|
+
| 14 | `finalization` | Finalization | Apply validation fixes, freeze docs, onboarding guide, implementation playbook |
|
|
65
|
+
| 15 | `build` | Build | Stateless execution loops — single/multi-agent, resume, quick-task, new-enhancement |
|
|
66
|
+
:::
|
|
67
|
+
|
|
68
|
+
Each step's `order` is phase-aligned: phase N occupies the N00–N99 band
|
|
69
|
+
(`tech-stack` is `220`, `coding-standards` is `230`, `single-agent-start` is
|
|
70
|
+
`1510`). The order field is the primary tiebreaker in the topological sort, so
|
|
71
|
+
within a phase steps run in `order` sequence.
|
|
72
|
+
|
|
73
|
+
```mermaid
|
|
74
|
+
flowchart LR
|
|
75
|
+
P0["0 · vision"] --> P1["1 · pre
|
|
76
|
+
PRD + stories"]
|
|
77
|
+
P1 --> P2["2 · foundation
|
|
78
|
+
tech-stack, standards, tdd, structure"]
|
|
79
|
+
P2 --> P3["3 · environment"]
|
|
80
|
+
P3 --> P4["4 · integration
|
|
81
|
+
e2e (conditional)"]
|
|
82
|
+
P4 --> P5["5 · modeling"]
|
|
83
|
+
P5 --> P6["6 · decisions
|
|
84
|
+
ADRs"]
|
|
85
|
+
P6 --> P7["7 · architecture"]
|
|
86
|
+
P7 --> P8["8 · specification
|
|
87
|
+
db / api / ux (conditional)"]
|
|
88
|
+
P8 --> P9["9 · quality"]
|
|
89
|
+
P9 --> P10["10 · parity (conditional)"]
|
|
90
|
+
P10 --> P11["11 · consolidation"]
|
|
91
|
+
P11 --> P12["12 · planning
|
|
92
|
+
implementation-plan"]
|
|
93
|
+
P12 --> P13["13 · validation
|
|
94
|
+
7 audits"]
|
|
95
|
+
P13 --> P14["14 · finalization
|
|
96
|
+
playbook"]
|
|
97
|
+
P14 ==>|"frozen spec"| P15["15 · build
|
|
98
|
+
stateless loops"]
|
|
99
|
+
P15 -.->|"run repeatedly"| P15
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
The arrows show the *phase* progression, not the exact step-level dependency
|
|
103
|
+
graph — a single step usually depends on one upstream step, not its whole
|
|
104
|
+
phase. See [Why a step is blocked](#why-a-step-is-blocked) for how dependencies
|
|
105
|
+
actually gate execution.
|
|
106
|
+
|
|
107
|
+
## Methodology & depth
|
|
108
|
+
|
|
109
|
+
Two orthogonal knobs control how much of the pipeline runs and how thoroughly:
|
|
110
|
+
|
|
111
|
+
1. **Preset** — *which* steps are enabled. Three presets ship
|
|
112
|
+
(`content/methodology/`): `mvp`, `custom` (balanced, depth 3), and `deep` (the
|
|
113
|
+
schema default).
|
|
114
|
+
2. **Depth** — *how thorough* each enabled step's output is, on a 1–5 scale.
|
|
115
|
+
|
|
116
|
+
### Depth (1–5)
|
|
117
|
+
|
|
118
|
+
Every depth level dials the same step from a sketch to an exhaustive document.
|
|
119
|
+
Each step's `## Methodology Scaling` section spells out its behavior per level —
|
|
120
|
+
`coding-standards` at depth 1 is "core naming conventions, commit format, import
|
|
121
|
+
ordering, 1–2 pages"; at depth 5 it's "full suite with all sections, custom
|
|
122
|
+
linter rules, and code review checklist, 15–20 pages."
|
|
123
|
+
|
|
124
|
+
:::filter-table
|
|
125
|
+
| depth | name | what you get |
|
|
126
|
+
| --- | --- | --- |
|
|
127
|
+
| 1 | Minimal | Bare minimum to start building |
|
|
128
|
+
| 2 | Light | Slightly more detail; still speed-first |
|
|
129
|
+
| 3 | Balanced | Recommended default — good coverage, no excess |
|
|
130
|
+
| 4 | Thorough | Comprehensive; review/validation steps add external-model validation (Codex/Gemini) where their Methodology Scaling declares it |
|
|
131
|
+
| 5 | Exhaustive | Maximum detail; multi-model reconciliation on the steps that opt into it; for critical/regulated work |
|
|
132
|
+
:::
|
|
133
|
+
|
|
134
|
+
External-model / multi-model dispatch at depth 4–5 is **step-specific** — it
|
|
135
|
+
applies to the prompts whose `## Methodology Scaling` section declares it
|
|
136
|
+
(chiefly the `review-*` / `innovate-*` / validation steps). For most authoring
|
|
137
|
+
steps, higher depth just means a more thorough single-model output.
|
|
138
|
+
|
|
139
|
+
Depth 3 is the inflection point where steps start adding structure,
|
|
140
|
+
cross-references, and validation beyond the basics. Override depth per run with
|
|
141
|
+
`scaffold run <step> --depth N`.
|
|
142
|
+
|
|
143
|
+
### The three presets
|
|
144
|
+
|
|
145
|
+
::::tabs
|
|
146
|
+
:::tab{title=mvp (depth 1)}
|
|
147
|
+
**Ship fast with minimal ceremony.** Only the essential planning steps are
|
|
148
|
+
enabled: vision, PRD + stories (with reviews), tech-stack, coding-standards,
|
|
149
|
+
tdd, project-structure, dev-env-setup, implementation-plan, and
|
|
150
|
+
implementation-playbook — then the build loops. Everything else (domain
|
|
151
|
+
modeling, ADRs, architecture, specs, quality gates, validation) is **disabled**.
|
|
152
|
+
This is the *minimum safe depth*: still enough spec to TDD against, but no
|
|
153
|
+
ceremony you'd skip on a weekend project.
|
|
154
|
+
:::
|
|
155
|
+
:::tab{title=custom (depth 3)}
|
|
156
|
+
**Balanced.** Most steps are enabled at depth 3. The exceptions:
|
|
157
|
+
the three `innovate-*` steps and `automated-pr-review` are off by default, and
|
|
158
|
+
the conditional steps (`beads`, `design-system`, `add-e2e-testing`, the spec
|
|
159
|
+
steps, `platform-parity-review`) are enabled-but-`if-needed`. You override
|
|
160
|
+
individual steps to taste.
|
|
161
|
+
:::
|
|
162
|
+
:::tab{title=deep (depth 5)}
|
|
163
|
+
**Maximum quality — and the schema default** (`methodology` defaults to `deep`
|
|
164
|
+
:cite[src/config/schema.ts:272]; the resolver also falls back to `deep`). *Every*
|
|
165
|
+
planning step is enabled, including the
|
|
166
|
+
`innovate-*` steps (as `if-needed`), domain modeling, ADRs, full architecture,
|
|
167
|
+
all specs, every quality gate, all seven validation audits, and the full
|
|
168
|
+
finalization phase. External-model dispatch kicks in at depth 4+. Best for
|
|
169
|
+
complex or regulated systems.
|
|
170
|
+
:::
|
|
171
|
+
::::
|
|
172
|
+
|
|
173
|
+
:::callout{type=note}
|
|
174
|
+
**Game / multi-service / platform steps are off in all three presets.** The 24
|
|
175
|
+
game steps and 5 cross-service steps are `enabled: false` in `mvp`, `custom`,
|
|
176
|
+
*and* `deep`. They only switch on via a **project-type overlay** — see the
|
|
177
|
+
playbooks below.
|
|
178
|
+
:::
|
|
179
|
+
|
|
180
|
+
## Project-type playbooks
|
|
181
|
+
|
|
182
|
+
Overlays (`content/methodology/*-overlay.yml`) layer onto a preset. Most overlays
|
|
183
|
+
only **inject domain knowledge** into existing steps (so a web-app build pulls in
|
|
184
|
+
`web-app-auth-patterns` during `tech-stack`, `security`, etc.); a few also
|
|
185
|
+
**enable whole step families**.
|
|
186
|
+
|
|
187
|
+
::::tabs
|
|
188
|
+
:::tab{title=Web app}
|
|
189
|
+
`web-app-overlay.yml` is knowledge-only — it appends web-app expertise to
|
|
190
|
+
~25 steps (rendering strategies + deployment + auth into `tech-stack`, UX
|
|
191
|
+
patterns into `ux-spec`, the design system into `design-system`, and so on). The
|
|
192
|
+
spec steps you'll actually use: `database-schema`, `api-contracts`, `ux-spec`
|
|
193
|
+
(all conditional). `add-e2e-testing` configures **Playwright**.
|
|
194
|
+
:::
|
|
195
|
+
:::tab{title=Mobile / Expo}
|
|
196
|
+
`mobile-app-overlay.yml` injects mobile knowledge the same way. The distinctive
|
|
197
|
+
piece is `add-e2e-testing`, which auto-detects the platform and wires up
|
|
198
|
+
**Maestro** for mobile/Expo instead of Playwright (phase 4 — `integration`).
|
|
199
|
+
:::
|
|
200
|
+
:::tab{title=Game}
|
|
201
|
+
`game-overlay.yml` is the heavyweight: it **enables a whole phase family** via
|
|
202
|
+
`step-overrides`. On come `game-design-document`, `review-gdd`,
|
|
203
|
+
`performance-budgets`, `narrative-bible`, `netcode-spec`, `ai-behavior-design`,
|
|
204
|
+
`art-bible`, `audio-design`, `economy-design`, `save-system-spec`,
|
|
205
|
+
`game-ui-spec`, `playtest-plan`, `platform-cert-prep`, and more — many as
|
|
206
|
+
`if-needed`. These live across the `pre`, `architecture`, `specification`, and
|
|
207
|
+
`quality` phases.
|
|
208
|
+
:::
|
|
209
|
+
:::tab{title=Multi-service}
|
|
210
|
+
`multi-service-overlay.yml` activates when `services[]` is present in config. It
|
|
211
|
+
enables five cross-service steps (`service-ownership-map`,
|
|
212
|
+
`inter-service-contracts`, `cross-service-auth`, `cross-service-observability`,
|
|
213
|
+
`integration-test-plan`) and — crucially — adds **dependency-overrides** and
|
|
214
|
+
**reads-overrides** so downstream steps wait for and consume those cross-service
|
|
215
|
+
artifacts. Use `scaffold next --service <name>` to drive a single service.
|
|
216
|
+
:::
|
|
217
|
+
:::tab{title=CLI / library}
|
|
218
|
+
`cli-overlay.yml` (and `library-overlay.yml`) are knowledge-only. They append
|
|
219
|
+
CLI expertise — command parsing, distribution, shell integration, output
|
|
220
|
+
formatting — into `tech-stack`, `system-architecture`, `api-contracts`,
|
|
221
|
+
`operations`, etc. No extra steps are enabled; you mostly skip the UX/design and
|
|
222
|
+
(often) the database spec steps.
|
|
223
|
+
:::
|
|
224
|
+
::::
|
|
225
|
+
|
|
226
|
+
Other shipped overlays include backend, data-pipeline, data-science, ML,
|
|
227
|
+
web3, browser-extension, and several research presets — all under
|
|
228
|
+
`content/methodology/`.
|
|
229
|
+
|
|
230
|
+
## Navigating the pipeline
|
|
231
|
+
|
|
232
|
+
The CLI is your driver. Every command lives in `src/cli/commands/`.
|
|
233
|
+
|
|
234
|
+
:::filter-table
|
|
235
|
+
| command | what it does | source |
|
|
236
|
+
| --- | --- | --- |
|
|
237
|
+
| `scaffold next` | Show the next eligible step(s) — what's unblocked right now | :cite[src/cli/commands/next.ts:28-29] |
|
|
238
|
+
| `scaffold run <step>` | Assemble + run a step; on completion, advances state | :cite[src/cli/commands/run.ts:45] |
|
|
239
|
+
| `scaffold complete <step>` | Mark a step done that you ran outside `scaffold run` | :cite[src/cli/commands/complete.ts:28] |
|
|
240
|
+
| `scaffold skip <step..>` | Skip one or more steps (treated as satisfied for deps) | :cite[src/cli/commands/skip.ts:35] |
|
|
241
|
+
| `scaffold rework` | Re-run steps **by phase** for depth improvement or cleanup | :cite[src/cli/commands/rework.ts:39-40] |
|
|
242
|
+
| `scaffold reset [step]` | Reset one step to pending, or wipe all pipeline state | :cite[src/cli/commands/reset.ts:32] |
|
|
243
|
+
| `scaffold status` | Show overall progress and per-step statuses | :cite[src/cli/commands/status.ts:80-81] |
|
|
244
|
+
:::
|
|
245
|
+
|
|
246
|
+
A typical loop: `scaffold next` to see what's unblocked → `scaffold run <step>`
|
|
247
|
+
→ repeat. `next` is a pure read — it derives eligibility live from the graph +
|
|
248
|
+
state and deliberately does *not* mutate `state.json`, so running it after an
|
|
249
|
+
upgrade won't churn committed state.
|
|
250
|
+
|
|
251
|
+
**`rework`** is phase-scoped: `scaffold rework --through 5` re-runs phases 1–5,
|
|
252
|
+
`--phases 2,7` re-runs just those, `--exclude 3` drops a phase, `--depth 5`
|
|
253
|
+
bumps depth for the batch. It batch-resets the selected steps to `pending` and
|
|
254
|
+
creates a rework session the runner skill walks through.
|
|
255
|
+
|
|
256
|
+
For build-phase work you don't touch `next`/`complete` — the stateless steps
|
|
257
|
+
(`single-agent-start`, `multi-agent-start`, the resume commands, `quick-task`,
|
|
258
|
+
`new-enhancement`) are run on demand and never tracked. See the
|
|
259
|
+
[concepts guide](../concepts/index.md){mode=advisory} and the
|
|
260
|
+
[CLI reference](../cli/index.md){mode=advisory} for the full command surface.
|
|
261
|
+
|
|
262
|
+
## Why a step is blocked
|
|
263
|
+
|
|
264
|
+
A step becomes *eligible* only when its **dependencies** are satisfied. The
|
|
265
|
+
frontmatter distinguishes two relationships, and they behave very differently:
|
|
266
|
+
|
|
267
|
+
- **`dependencies`** (:cite[src/types/frontmatter.ts:114]) — **hard gates.**
|
|
268
|
+
`scaffold run` refuses a step whose deps aren't `completed` or `skipped`,
|
|
269
|
+
exiting with `DEP_UNMET` (:cite[src/cli/commands/run.ts:262-281]). `coding-standards`
|
|
270
|
+
declares `dependencies: [tech-stack]`, so you can't write standards before you
|
|
271
|
+
pick a stack.
|
|
272
|
+
- **`reads`** (:cite[src/types/frontmatter.ts:122]) — **soft references.** A step
|
|
273
|
+
*reads* an upstream artifact if it's available, but a missing/incomplete read
|
|
274
|
+
never blocks execution — the assembler silently skips it
|
|
275
|
+
(:cite[src/cli/commands/run.ts:413-421]). `coding-standards` *reads*
|
|
276
|
+
`create-prd` so the domain informs which patterns matter, but a missing PRD
|
|
277
|
+
won't stop it.
|
|
278
|
+
|
|
279
|
+
:::callout{type=warning}
|
|
280
|
+
**`reads` ≠ `dependencies` — and that trips people up.** Because reads don't gate
|
|
281
|
+
execution, a step can run "successfully" while silently missing context it would
|
|
282
|
+
have benefited from. If you `skip` an upstream step, downstream steps that only
|
|
283
|
+
*read* it proceed without warning. When ordering matters, an overlay can promote
|
|
284
|
+
a read into a `dependency` (the multi-service overlay does exactly this with its
|
|
285
|
+
`dependency-overrides`).
|
|
286
|
+
:::
|
|
287
|
+
|
|
288
|
+
### Conditional ("if-needed") steps
|
|
289
|
+
|
|
290
|
+
A step with `conditional: 'if-needed'`
|
|
291
|
+
(:cite[src/types/frontmatter.ts:118]) is enabled but only *applies* to certain
|
|
292
|
+
project shapes. `database-schema` is `conditional: "if-needed"`
|
|
293
|
+
(:cite[content/pipeline/specification/database-schema.md:10]) — it runs only if
|
|
294
|
+
your project has a database layer. The spec steps (`database-schema`,
|
|
295
|
+
`api-contracts`, `ux-spec`), `add-e2e-testing`, `design-system`, `beads`, and
|
|
296
|
+
`platform-parity-review` are all conditional in the default presets.
|
|
297
|
+
|
|
298
|
+
:::callout{type=warning}
|
|
299
|
+
**The silent-skip trap.** Conditional steps that don't apply, and steps you
|
|
300
|
+
`skip` manually, both count as "satisfied" for dependency purposes — so the
|
|
301
|
+
pipeline keeps flowing and `scaffold next` shows green. That's by design, but it
|
|
302
|
+
means *the pipeline won't warn you that you skipped something important.* If
|
|
303
|
+
`ux-spec` is skipped on a project that genuinely has a UI, nothing downstream
|
|
304
|
+
will block; the gap only surfaces in phase 13 validation (or the build
|
|
305
|
+
observability audit). Run `scaffold status` to see what was actually
|
|
306
|
+
skipped vs completed.
|
|
307
|
+
:::
|
|
308
|
+
|
|
309
|
+
### A representative dependency slice
|
|
310
|
+
|
|
311
|
+
The phase-2 foundation steps show the gating in miniature: `tech-stack` has no
|
|
312
|
+
dependencies (it kicks off the foundation), and `coding-standards` depends on it.
|
|
313
|
+
|
|
314
|
+
```mermaid
|
|
315
|
+
flowchart LR
|
|
316
|
+
PRD["create-prd
|
|
317
|
+
(phase 1)"] -.->|reads| TS
|
|
318
|
+
PRD -.->|reads| CS
|
|
319
|
+
TS["tech-stack
|
|
320
|
+
deps: []"] -->|dependency| CS["coding-standards
|
|
321
|
+
deps: [tech-stack]"]
|
|
322
|
+
CS -->|dependency| TDD["tdd
|
|
323
|
+
deps: [coding-standards]"]
|
|
324
|
+
TS --> PS["project-structure
|
|
325
|
+
deps: [tech-stack, coding-standards]"]
|
|
326
|
+
CS --> PS
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
Solid arrows are hard `dependencies` (block until done); dashed arrows are soft
|
|
330
|
+
`reads` (used if present, never block).
|
|
331
|
+
|
|
332
|
+
## CREATE vs UPDATE mode
|
|
333
|
+
|
|
334
|
+
Running a planning step a second time doesn't blindly overwrite its artifact.
|
|
335
|
+
Every document-creating prompt carries a **Mode Detection** block: if the output
|
|
336
|
+
file already exists, the step runs in **UPDATE mode** instead of CREATE mode.
|
|
337
|
+
|
|
338
|
+
`scaffold run` detects this and (unless `--force`) confirms before re-running a
|
|
339
|
+
completed step, and warns on a depth *downgrade* (re-running at a lower depth
|
|
340
|
+
than last time). In UPDATE mode the prompt is instructed to **preserve**
|
|
341
|
+
human/team customizations and only change what genuinely needs to change. From
|
|
342
|
+
`coding-standards`'s Mode Detection block
|
|
343
|
+
(:cite[content/pipeline/foundation/coding-standards.md:57]):
|
|
344
|
+
|
|
345
|
+
> Update mode if `docs/coding-standards.md` exists. In update mode: preserve
|
|
346
|
+
> naming conventions, lint rule customizations, commit message format, and
|
|
347
|
+
> project-specific patterns.
|
|
348
|
+
|
|
349
|
+
So re-running `coding-standards` after you've hand-tuned its linter config keeps
|
|
350
|
+
your overrides; it doesn't reset them. This is what makes the planning phases
|
|
351
|
+
safe to iterate — you can `rework` a phase at higher depth and get richer
|
|
352
|
+
output without losing the decisions you've already made.
|
|
353
|
+
|
|
354
|
+
:::callout{type=note}
|
|
355
|
+
**Phase-15 steps don't use the planning CREATE-vs-UPDATE semantics.** They produce
|
|
356
|
+
no persistent planning doc, so the document Mode Detection block doesn't apply.
|
|
357
|
+
Each build prompt instead declares its own execution mode: the agent loops just
|
|
358
|
+
execute, `single-agent-resume`/`multi-agent-resume` run in RESUME mode,
|
|
359
|
+
`quick-task` in CREATE mode, and `new-enhancement` in ENHANCEMENT mode.
|
|
360
|
+
:::
|
|
361
|
+
|
|
362
|
+
## Phase-boundary audits
|
|
363
|
+
|
|
364
|
+
Completing certain planning docs automatically triggers a non-gating
|
|
365
|
+
cross-document audit. Six steps are **phase boundaries**
|
|
366
|
+
(:cite[src/observability/engine/phase-subsets.ts:1-8]): `user-stories`,
|
|
367
|
+
`tech-stack`, `coding-standards`, `design-system`, `implementation-plan`, and
|
|
368
|
+
`implementation-playbook`. When you `complete` one of these, the state manager
|
|
369
|
+
fires an `H-cross-doc` audit and prints a one-line summary — catching doc drift
|
|
370
|
+
the moment a planning phase closes, without ever blocking the transition. See
|
|
371
|
+
the [build observability guide](../observability/index.md){mode=advisory} for
|
|
372
|
+
how that audit works and what the nine lenses check.
|
|
373
|
+
|
|
374
|
+
## Where it all lives
|
|
375
|
+
|
|
376
|
+
| path | what it holds |
|
|
377
|
+
| --- | --- |
|
|
378
|
+
| `content/pipeline/<phase>/*.md` | The 89 meta-prompt files, one directory per phase |
|
|
379
|
+
| `content/methodology/*.yml` | Presets (`mvp`, `custom-defaults`, `deep`) + project-type overlays |
|
|
380
|
+
| `content/knowledge/` | Domain entries injected into prompts during assembly |
|
|
381
|
+
| `src/types/frontmatter.ts` | The canonical `PHASES` constant + frontmatter schema |
|
|
382
|
+
| `src/cli/commands/` | `next`, `run`, `complete`, `skip`, `rework`, `reset`, `status` |
|
|
383
|
+
| `.scaffold/state.json` | Per-step completion state (planning phases only) |
|
|
384
|
+
|
|
385
|
+
The phase list, ordering, and slugs are defined exactly once, in `PHASES`
|
|
386
|
+
(:cite[src/types/frontmatter.ts:6]); every doc, skill, and command resolves
|
|
387
|
+
against it.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg id="my-svg" width="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="flowchart" style="max-width: 825.5px; background-color: transparent;" viewBox="0 0 825.5 526.359375" role="graphics-document document" aria-roledescription="flowchart-v2"><style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#000000;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#my-svg .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#my-svg .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#666;stroke:#666;}#my-svg .marker.cross{stroke:#666;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg p{margin:0;}#my-svg .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#000000;}#my-svg .cluster-label text{fill:#333;}#my-svg .cluster-label span{color:#333;}#my-svg .cluster-label span p{background-color:transparent;}#my-svg .label text,#my-svg span{fill:#000000;color:#000000;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#eee;stroke:#999;stroke-width:1px;}#my-svg .rough-node .label text,#my-svg .node .label text,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .rough-node .label,#my-svg .node .label,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .root .anchor path{fill:#666!important;stroke-width:0;stroke:#666;}#my-svg .arrowheadPath{fill:#333333;}#my-svg .edgePath .path{stroke:#666;stroke-width:1px;}#my-svg .flowchart-link{stroke:#666;fill:none;}#my-svg .edgeLabel{background-color:white;text-align:center;}#my-svg .edgeLabel p{background-color:white;}#my-svg .edgeLabel rect{opacity:0.5;background-color:white;fill:white;}#my-svg .labelBkg{background-color:rgba(255, 255, 255, 0.5);}#my-svg .cluster rect{fill:hsl(0, 0%, 98.9215686275%);stroke:#707070;stroke-width:1px;}#my-svg .cluster text{fill:#333;}#my-svg .cluster span{color:#333;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(-160, 0%, 93.3333333333%);border:1px solid #707070;border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#000000;}#my-svg rect.text{fill:none;stroke-width:0;}#my-svg .icon-shape,#my-svg .image-shape{background-color:white;text-align:center;}#my-svg .icon-shape p,#my-svg .image-shape p{background-color:white;padding:2px;}#my-svg .icon-shape .label rect,#my-svg .image-shape .label rect{opacity:0.5;background-color:white;fill:white;}#my-svg .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#my-svg .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#my-svg .node .neo-node{stroke:#999;}#my-svg [data-look="neo"].node rect,#my-svg [data-look="neo"].cluster rect,#my-svg [data-look="neo"].node polygon{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node path{stroke:url(#my-svg-gradient);stroke-width:1px;}#my-svg [data-look="neo"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node .neo-line path{stroke:#999;filter:none;}#my-svg [data-look="neo"].node circle{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node circle .state-start{fill:#000000;}#my-svg [data-look="neo"].icon-shape .icon{fill:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].icon-shape .icon-neo path{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker id="my-svg_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointEnd-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="11.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="10.5" markerHeight="14" orient="auto"><path d="M 0 0 L 11.5 7 L 0 14 z" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="1" refY="7" markerUnits="userSpaceOnUse" markerWidth="11.5" markerHeight="14" orient="auto"><polygon points="0,7 11.5,14 11.5,0" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refY="5" refX="12.25" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-2" refY="5" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="17.7" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5;"/></marker><marker id="my-svg_flowchart-v2-crossStart-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="-3.5" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5; stroke-dasharray: 1, 0;"/></marker><g class="root"><g class="clusters"/><g class="edgePaths"><path d="M321.135,157.182L287.213,173.878C253.29,190.574,185.446,223.967,151.524,245.63C117.602,267.293,117.602,277.226,117.602,282.193L117.602,287.159" id="my-svg-L_Q_A_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Q_A_0" data-points="W3sieCI6MzIxLjEzNDc4NzQxODUyMDEsInkiOjE1Ny4xODE2NjI0MTg1MjAxMn0seyJ4IjoxMTcuNjAxNTYyNSwieSI6MjU3LjM1OTM3NX0seyJ4IjoxMTcuNjAxNTYyNSwieSI6MjkxLjE1OTM3NDIzNzA2MDU1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M396.313,232.359L396.313,236.526C396.313,240.693,396.313,249.026,396.313,256.693C396.313,264.359,396.313,271.359,396.313,274.859L396.313,278.359" id="my-svg-L_Q_B_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Q_B_0" data-points="W3sieCI6Mzk2LjMxMjUsInkiOjIzMi4zNTkzNzV9LHsieCI6Mzk2LjMxMjUsInkiOjI1Ny4zNTkzNzV9LHsieCI6Mzk2LjMxMjUsInkiOjI4Mi4zNTkzNzV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M472.897,155.775L509.324,172.706C545.752,189.636,618.606,223.498,655.034,243.929C691.461,264.359,691.461,271.359,691.461,274.859L691.461,278.359" id="my-svg-L_Q_C_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Q_C_0" data-points="W3sieCI6NDcyLjg5NzA2MDU5MjQwNDg0LCJ5IjoxNTUuNzc0ODE0NDA3NTk1MTN9LHsieCI6NjkxLjQ2MDkzNzUsInkiOjI1Ny4zNTkzNzV9LHsieCI6NjkxLjQ2MDkzNzUsInkiOjI4Mi4zNTkzNzV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M117.602,340.159L117.602,345.793C117.602,351.426,117.602,362.693,117.602,376.226C117.602,389.759,117.602,405.559,117.602,413.459L117.602,421.359" id="my-svg-L_A_AR_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_A_AR_0" data-points="W3sieCI6MTE3LjYwMTU2MjUsInkiOjM0MC4xNTkzNzQyMzcwNjA1NX0seyJ4IjoxMTcuNjAxNTYyNSwieSI6MzczLjk1OTM3MzQ3NDEyMTF9LHsieCI6MTE3LjYwMTU2MjUsInkiOjQyNS4zNTkzNzV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M396.313,348.959L396.313,353.126C396.313,357.293,396.313,365.626,396.313,376.226C396.313,386.826,396.313,399.693,396.313,406.126L396.313,412.559" id="my-svg-L_B_BR_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_B_BR_0" data-points="W3sieCI6Mzk2LjMxMjUsInkiOjM0OC45NTkzNzM0NzQxMjExfSx7IngiOjM5Ni4zMTI1LCJ5IjozNzMuOTU5MzczNDc0MTIxMX0seyJ4IjozOTYuMzEyNSwieSI6NDE2LjU1OTM3NTc2MjkzOTQ1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M691.461,348.959L691.461,353.126C691.461,357.293,691.461,365.626,691.461,373.293C691.461,380.959,691.461,387.959,691.461,391.459L691.461,394.959" id="my-svg-L_C_CR_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_C_CR_0" data-points="W3sieCI6NjkxLjQ2MDkzNzUsInkiOjM0OC45NTkzNzM0NzQxMjExfSx7IngiOjY5MS40NjA5Mzc1LCJ5IjozNzMuOTU5MzczNDc0MTIxMX0seyJ4Ijo2OTEuNDYwOTM3NSwieSI6Mzk4Ljk1OTM3MzQ3NDEyMTF9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/></g><g class="edgeLabels"><g class="edgeLabel"><g class="label" data-id="L_Q_A_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g><g class="edgeLabel"><g class="label" data-id="L_Q_B_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g><g class="edgeLabel"><g class="label" data-id="L_Q_C_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g><g class="edgeLabel"><g class="label" data-id="L_A_AR_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g><g class="edgeLabel"><g class="label" data-id="L_B_BR_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g><g class="edgeLabel"><g class="label" data-id="L_C_CR_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g></g><g class="nodes"><g class="node default" id="my-svg-flowchart-Q-0" data-look="classic" transform="translate(396.3125, 120.1796875)"><polygon points="112.1796875,0 224.359375,-112.1796875 112.1796875,-224.359375 0,-112.1796875" class="label-container" transform="translate(-111.6796875, 112.1796875)"/><g class="label" style="" transform="translate(0, -9.5)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">What</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> are</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> you</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> reviewing?</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-A-1" data-look="classic" transform="translate(117.6015625, 315.65937423706055)"><rect class="basic label-container" style="" x="-70.5234375" y="-24.5" width="141.046875" height="49"/><g class="label" style="" transform="translate(0, -9.5)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">An</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> open</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> PR</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-B-3" data-look="classic" transform="translate(396.3125, 315.65937423706055)"><rect class="basic label-container" style="" x="-103.578125" y="-33.29999923706055" width="207.15625" height="66.5999984741211"/><g class="label" style="" transform="translate(0, -18.299999237060547)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Local</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> changes</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">before</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> commit/push</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-C-5" data-look="classic" transform="translate(691.4609375, 315.65937423706055)"><rect class="basic label-container" style="" x="-102.8828125" y="-33.29999923706055" width="205.765625" height="66.5999984741211"/><g class="label" style="" transform="translate(0, -18.299999237060547)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">The</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> whole</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> codebase</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">after</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> all</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> tasks</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> land</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-AR-7" data-look="classic" transform="translate(117.6015625, 458.65937423706055)"><rect class="basic label-container" style="" x="-109.6015625" y="-33.29999923706055" width="219.203125" height="66.5999984741211"/><g class="label" style="" transform="translate(0, -18.299999237060547)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">scaffold</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> run</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> review-pr</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(mmr</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> review</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> --pr</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> N)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-BR-9" data-look="classic" transform="translate(396.3125, 458.65937423706055)"><rect class="basic label-container" style="" x="-119.109375" y="-42.099998474121094" width="238.21875" height="84.19999694824219"/><g class="label" style="" transform="translate(0, -27.099998474121094)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">scaffold</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> run</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> review-code</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(synthesized</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> delivery</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">candidate)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-CR-11" data-look="classic" transform="translate(691.4609375, 458.65937423706055)"><rect class="basic label-container" style="" x="-126.0390625" y="-59.70000076293945" width="252.078125" height="119.4000015258789"/><g class="label" style="" transform="translate(0, -44.70000076293945)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">scaffold</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> run</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">post-implementation-revie</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">w</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="3.2em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(two-phase:</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> systemic</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> +</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="4.300000000000001em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">per-story)</tspan></tspan></text></g></g></g></g></g></g><defs><filter id="my-svg-drop-shadow" height="130%" width="130%"><feDropShadow dx="4" dy="4" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><defs><filter id="my-svg-drop-shadow-small" height="150%" width="150%"><feDropShadow dx="2" dy="2" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><linearGradient id="my-svg-gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="hsl(0, 0%, 83.3333333333%)" stop-opacity="1"/><stop offset="100%" stop-color="hsl(0, 0%, 88.9215686275%)" stop-opacity="1"/></linearGradient></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg id="my-svg" width="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="flowchart" style="max-width: 1360.44px; background-color: transparent;" viewBox="0 0 1360.4375 502.8125" role="graphics-document document" aria-roledescription="flowchart-v2"><style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#000000;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#my-svg .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#my-svg .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#666;stroke:#666;}#my-svg .marker.cross{stroke:#666;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg p{margin:0;}#my-svg .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#000000;}#my-svg .cluster-label text{fill:#333;}#my-svg .cluster-label span{color:#333;}#my-svg .cluster-label span p{background-color:transparent;}#my-svg .label text,#my-svg span{fill:#000000;color:#000000;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#eee;stroke:#999;stroke-width:1px;}#my-svg .rough-node .label text,#my-svg .node .label text,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .rough-node .label,#my-svg .node .label,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .root .anchor path{fill:#666!important;stroke-width:0;stroke:#666;}#my-svg .arrowheadPath{fill:#333333;}#my-svg .edgePath .path{stroke:#666;stroke-width:1px;}#my-svg .flowchart-link{stroke:#666;fill:none;}#my-svg .edgeLabel{background-color:white;text-align:center;}#my-svg .edgeLabel p{background-color:white;}#my-svg .edgeLabel rect{opacity:0.5;background-color:white;fill:white;}#my-svg .labelBkg{background-color:rgba(255, 255, 255, 0.5);}#my-svg .cluster rect{fill:hsl(0, 0%, 98.9215686275%);stroke:#707070;stroke-width:1px;}#my-svg .cluster text{fill:#333;}#my-svg .cluster span{color:#333;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(-160, 0%, 93.3333333333%);border:1px solid #707070;border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#000000;}#my-svg rect.text{fill:none;stroke-width:0;}#my-svg .icon-shape,#my-svg .image-shape{background-color:white;text-align:center;}#my-svg .icon-shape p,#my-svg .image-shape p{background-color:white;padding:2px;}#my-svg .icon-shape .label rect,#my-svg .image-shape .label rect{opacity:0.5;background-color:white;fill:white;}#my-svg .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#my-svg .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#my-svg .node .neo-node{stroke:#999;}#my-svg [data-look="neo"].node rect,#my-svg [data-look="neo"].cluster rect,#my-svg [data-look="neo"].node polygon{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node path{stroke:url(#my-svg-gradient);stroke-width:1px;}#my-svg [data-look="neo"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node .neo-line path{stroke:#999;filter:none;}#my-svg [data-look="neo"].node circle{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node circle .state-start{fill:#000000;}#my-svg [data-look="neo"].icon-shape .icon{fill:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].icon-shape .icon-neo path{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker id="my-svg_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointEnd-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="11.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="10.5" markerHeight="14" orient="auto"><path d="M 0 0 L 11.5 7 L 0 14 z" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="1" refY="7" markerUnits="userSpaceOnUse" markerWidth="11.5" markerHeight="14" orient="auto"><polygon points="0,7 11.5,14 11.5,0" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refY="5" refX="12.25" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-2" refY="5" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="17.7" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5;"/></marker><marker id="my-svg_flowchart-v2-crossStart-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="-3.5" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5; stroke-dasharray: 1, 0;"/></marker><g class="root"><g class="clusters"/><g class="edgePaths"><path d="M545.631,127.842L472.052,145.504C398.473,163.166,251.315,198.489,177.735,222.584C104.156,246.679,104.156,259.546,104.156,265.979L104.156,272.412" id="my-svg-L_S_PR_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_S_PR_0" data-points="W3sieCI6NTQ1LjYzMTIwMTg1Nzg1MzUsInkiOjEyNy44NDIxMzkzNTc4NTM0OH0seyJ4IjoxMDQuMTU2MjUsInkiOjIzMy44MTI1fSx7IngiOjEwNC4xNTYyNSwieSI6Mjc2LjQxMjQ5ODQ3NDEyMTF9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M557.898,140.109L524.055,155.727C490.211,171.344,422.523,202.578,388.68,224.629C354.836,246.679,354.836,259.546,354.836,265.979L354.836,272.412" id="my-svg-L_S_ST_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_S_ST_0" data-points="W3sieCI6NTU3Ljg5ODM5MTM5NzY3NDksInkiOjE0MC4xMDkzMjg4OTc2NzQ5N30seyJ4IjozNTQuODM1OTM3NSwieSI6MjMzLjgxMjV9LHsieCI6MzU0LjgzNTkzNzUsInkiOjI3Ni40MTI0OTg0NzQxMjExfV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M626.602,208.813L626.602,212.979C626.602,217.146,626.602,225.479,626.602,236.079C626.602,246.679,626.602,259.546,626.602,265.979L626.602,272.412" id="my-svg-L_S_BR_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_S_BR_0" data-points="W3sieCI6NjI2LjYwMTU2MjUsInkiOjIwOC44MTI1fSx7IngiOjYyNi42MDE1NjI1LCJ5IjoyMzMuODEyNX0seyJ4Ijo2MjYuNjAxNTYyNSwieSI6Mjc2LjQxMjQ5ODQ3NDEyMTF9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M697.091,138.323L734.59,154.238C772.09,170.153,847.088,201.983,884.587,221.398C922.086,240.813,922.086,247.813,922.086,251.313L922.086,254.813" id="my-svg-L_S_DC_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_S_DC_0" data-points="W3sieCI6Njk3LjA5MTMxOTg1MDQ4NDQsInkiOjEzOC4zMjI3NDI2NDk1MTU1M30seyJ4Ijo5MjIuMDg1OTM3NSwieSI6MjMzLjgxMjV9LHsieCI6OTIyLjA4NTkzNzUsInkiOjI1OC44MTI1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M709.645,125.769L795.768,143.777C881.891,161.784,1054.137,197.798,1140.26,220.772C1226.383,243.746,1226.383,253.679,1226.383,258.646L1226.383,263.612" id="my-svg-L_S_UF_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_S_UF_0" data-points="W3sieCI6NzA5LjY0NDYxODQ0NDU4MzMsInkiOjEyNS43Njk0NDQwNTU0MTY3fSx7IngiOjEyMjYuMzgyODEyNSwieSI6MjMzLjgxMjV9LHsieCI6MTIyNi4zODI4MTI1LCJ5IjoyNjcuNjEyNDk5MjM3MDYwNTV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M104.156,325.412L104.156,332.512C104.156,339.612,104.156,353.812,104.156,368.812C104.156,383.812,104.156,399.612,104.156,407.512L104.156,415.412" id="my-svg-L_PR_PRc_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_PR_PRc_0" data-points="W3sieCI6MTA0LjE1NjI1LCJ5IjozMjUuNDEyNDk4NDc0MTIxMX0seyJ4IjoxMDQuMTU2MjUsInkiOjM2OC4wMTI0OTY5NDgyNDIyfSx7IngiOjEwNC4xNTYyNSwieSI6NDE5LjQxMjQ5ODQ3NDEyMTF9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M354.836,325.412L354.836,332.512C354.836,339.612,354.836,353.812,354.836,368.812C354.836,383.812,354.836,399.612,354.836,407.512L354.836,415.412" id="my-svg-L_ST_STc_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ST_STc_0" data-points="W3sieCI6MzU0LjgzNTkzNzUsInkiOjMyNS40MTI0OTg0NzQxMjExfSx7IngiOjM1NC44MzU5Mzc1LCJ5IjozNjguMDEyNDk2OTQ4MjQyMn0seyJ4IjozNTQuODM1OTM3NSwieSI6NDE5LjQxMjQ5ODQ3NDEyMTF9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M626.602,325.412L626.602,332.512C626.602,339.612,626.602,353.812,626.602,367.346C626.602,380.879,626.602,393.746,626.602,400.179L626.602,406.612" id="my-svg-L_BR_BRc_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_BR_BRc_0" data-points="W3sieCI6NjI2LjYwMTU2MjUsInkiOjMyNS40MTI0OTg0NzQxMjExfSx7IngiOjYyNi42MDE1NjI1LCJ5IjozNjguMDEyNDk2OTQ4MjQyMn0seyJ4Ijo2MjYuNjAxNTYyNSwieSI6NDEwLjYxMjQ5OTIzNzA2MDU1fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M922.086,343.012L922.086,347.179C922.086,351.346,922.086,359.679,922.086,367.346C922.086,375.012,922.086,382.012,922.086,385.512L922.086,389.012" id="my-svg-L_DC_DCc_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_DC_DCc_0" data-points="W3sieCI6OTIyLjA4NTkzNzUsInkiOjM0My4wMTI0OTY5NDgyNDIyfSx7IngiOjkyMi4wODU5Mzc1LCJ5IjozNjguMDEyNDk2OTQ4MjQyMn0seyJ4Ijo5MjIuMDg1OTM3NSwieSI6MzkzLjAxMjQ5Njk0ODI0MjJ9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1226.383,334.212L1226.383,339.846C1226.383,345.479,1226.383,356.746,1226.383,368.812C1226.383,380.879,1226.383,393.746,1226.383,400.179L1226.383,406.612" id="my-svg-L_UF_UFc_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_UF_UFc_0" data-points="W3sieCI6MTIyNi4zODI4MTI1LCJ5IjozMzQuMjEyNDk3NzExMTgxNjR9LHsieCI6MTIyNi4zODI4MTI1LCJ5IjozNjguMDEyNDk2OTQ4MjQyMn0seyJ4IjoxMjI2LjM4MjgxMjUsInkiOjQxMC42MTI0OTkyMzcwNjA1NX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/></g><g class="edgeLabels"><g class="edgeLabel"><g class="label" data-id="L_S_PR_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g><g class="edgeLabel"><g class="label" data-id="L_S_ST_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g><g class="edgeLabel"><g class="label" data-id="L_S_BR_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g><g class="edgeLabel"><g class="label" data-id="L_S_DC_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g><g class="edgeLabel"><g class="label" data-id="L_S_UF_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g><g class="edgeLabel"><g class="label" data-id="L_PR_PRc_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g><g class="edgeLabel"><g class="label" data-id="L_ST_STc_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g><g class="edgeLabel"><g class="label" data-id="L_BR_BRc_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g><g class="edgeLabel"><g class="label" data-id="L_DC_DCc_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g><g class="edgeLabel"><g class="label" data-id="L_UF_UFc_0" transform="translate(0, 0)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"/></text></g></g><g><rect class="background" style="stroke: none"/></g></g><g class="nodes"><g class="node default" id="my-svg-flowchart-S-0" data-look="classic" transform="translate(626.6015625, 108.40625)"><polygon points="100.40625,0 200.8125,-100.40625 100.40625,-200.8125 0,-100.40625" class="label-container" transform="translate(-99.90625, 100.40625)"/><g class="label" style="" transform="translate(0, -9.5)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Where</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> is</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> the</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> change?</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-PR-1" data-look="classic" transform="translate(104.15625, 300.9124984741211)"><rect class="basic label-container" style="" x="-85.25" y="-24.5" width="170.5" height="49"/><g class="label" style="" transform="translate(0, -9.5)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">On</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> a</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> GitHub</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> PR</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-ST-3" data-look="classic" transform="translate(354.8359375, 300.9124984741211)"><rect class="basic label-container" style="" x="-99.3359375" y="-24.5" width="198.671875" height="49"/><g class="label" style="" transform="translate(0, -9.5)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Staged</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> in</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> the</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> index</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-BR-5" data-look="classic" transform="translate(626.6015625, 300.9124984741211)"><rect class="basic label-container" style="" x="-98.9609375" y="-24.5" width="197.921875" height="49"/><g class="label" style="" transform="translate(0, -9.5)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">A</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> branch,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> vs</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> a</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> base</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-DC-7" data-look="classic" transform="translate(922.0859375, 300.9124984741211)"><rect class="basic label-container" style="" x="-108.0625" y="-42.099998474121094" width="216.125" height="84.19999694824219"/><g class="label" style="" transform="translate(0, -27.099998474121094)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Local</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> working</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> tree:</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">committed</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> +</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> staged</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> +</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">unstaged</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-UF-9" data-look="classic" transform="translate(1226.3828125, 300.9124984741211)"><rect class="basic label-container" style="" x="-101.8359375" y="-33.29999923706055" width="203.671875" height="66.5999984741211"/><g class="label" style="" transform="translate(0, -18.299999237060547)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">A</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> brand-new</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> file</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">git</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> doesn't</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> track</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> yet</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-PRc-11" data-look="classic" transform="translate(104.15625, 443.9124984741211)"><rect class="basic label-container" style="" x="-96.15625" y="-24.5" width="192.3125" height="49"/><g class="label" style="" transform="translate(0, -9.5)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">mmr</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> review</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> --pr</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> N</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-STc-13" data-look="classic" transform="translate(354.8359375, 443.9124984741211)"><rect class="basic label-container" style="" x="-104.5234375" y="-24.5" width="209.046875" height="49"/><g class="label" style="" transform="translate(0, -9.5)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">mmr</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> review</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> --staged</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-BRc-15" data-look="classic" transform="translate(626.6015625, 443.9124984741211)"><rect class="basic label-container" style="" x="-117.2421875" y="-33.29999923706055" width="234.484375" height="66.5999984741211"/><g class="label" style="" transform="translate(0, -18.299999237060547)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">mmr</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> review</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> --base</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> main</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">--head</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> BRANCH</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-DCc-17" data-look="classic" transform="translate(922.0859375, 443.9124984741211)"><rect class="basic label-container" style="" x="-128.2421875" y="-50.900001525878906" width="256.484375" height="101.80000305175781"/><g class="label" style="" transform="translate(0, -35.900001525878906)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">git</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> diff</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> MERGE_BASE</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> |</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> mmr</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">review</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> --diff</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> -</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(this</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> is</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> what</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> review-code</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="3.2em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">synthesizes)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-UFc-19" data-look="classic" transform="translate(1226.3828125, 443.9124984741211)"><rect class="basic label-container" style="" x="-126.0546875" y="-33.29999923706055" width="252.109375" height="66.5999984741211"/><g class="label" style="" transform="translate(0, -18.299999237060547)"><rect/><g><rect class="background" style="stroke: none"/><text y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(diff</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> -u</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> /dev/null</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> FILE</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> ||</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">true)</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> |</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> mmr</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> review</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> --diff</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> -</tspan></tspan></text></g></g></g></g></g></g><defs><filter id="my-svg-drop-shadow" height="130%" width="130%"><feDropShadow dx="4" dy="4" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><defs><filter id="my-svg-drop-shadow-small" height="150%" width="150%"><feDropShadow dx="2" dy="2" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><linearGradient id="my-svg-gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="hsl(0, 0%, 83.3333333333%)" stop-opacity="1"/><stop offset="100%" stop-color="hsl(0, 0%, 88.9215686275%)" stop-opacity="1"/></linearGradient></svg>
|