@webpresso/agent-kit 0.21.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/.claude-plugin/marketplace.json +27 -0
- package/.claude-plugin/plugin.json +73 -0
- package/LICENSE +21 -0
- package/README.md +106 -0
- package/THIRD-PARTY-NOTICES.md +60 -0
- package/bin/_run.js +201 -0
- package/bin/docs-check-internal-links.js +5 -0
- package/bin/docs-check-refs.js +5 -0
- package/bin/docs-check-stale.js +5 -0
- package/bin/docs-lint.js +5 -0
- package/bin/docs-migrate.js +5 -0
- package/bin/wp-check-dev-link.js +5 -0
- package/bin/wp-guard-switch.js +5 -0
- package/bin/wp-post-tool.js +5 -0
- package/bin/wp-pretool-guard.js +5 -0
- package/bin/wp-restore-dev-links.js +5 -0
- package/bin/wp-sessionstart-routing.js +5 -0
- package/bin/wp-stop-qa.js +5 -0
- package/bin/wp-test-quality-check.js +5 -0
- package/bin/wp.js +5 -0
- package/catalog/AGENTS.md.tpl +202 -0
- package/catalog/agent/.audit-budgets.yaml +12 -0
- package/catalog/agent/agents/README.md +22 -0
- package/catalog/agent/agents/code-reviewer.md +34 -0
- package/catalog/agent/agents/doc-writer.md +35 -0
- package/catalog/agent/agents/explorer.md +33 -0
- package/catalog/agent/agents/security-auditor.md +34 -0
- package/catalog/agent/commands/audit-duplication.md +34 -0
- package/catalog/agent/commands/audit.md +219 -0
- package/catalog/agent/commands/brainstorm.md +115 -0
- package/catalog/agent/commands/decide.md +132 -0
- package/catalog/agent/commands/fix-all.md +160 -0
- package/catalog/agent/commands/fix.md +109 -0
- package/catalog/agent/commands/plan-refine.md +103 -0
- package/catalog/agent/commands/pll.md +174 -0
- package/catalog/agent/commands/tph.md +380 -0
- package/catalog/agent/commands/verify.md +9 -0
- package/catalog/agent/correlate.allow.yaml +5 -0
- package/catalog/agent/guides/agent-guardrails.md +116 -0
- package/catalog/agent/guides/parallel-execution.md +79 -0
- package/catalog/agent/guides/plan-audit-checklist.md +189 -0
- package/catalog/agent/guides/skills.md +32 -0
- package/catalog/agent/rules/README.md +30 -0
- package/catalog/agent/rules/agent-guide.md +464 -0
- package/catalog/agent/rules/blueprint-scoping.md +69 -0
- package/catalog/agent/rules/changeset-release.md +161 -0
- package/catalog/agent/rules/cmd-execution.md +121 -0
- package/catalog/agent/rules/context-mode-routing.md +64 -0
- package/catalog/agent/rules/engineering-principles.md +42 -0
- package/catalog/agent/rules/extraction-parity.md +157 -0
- package/catalog/agent/rules/generated-code-governance.md +87 -0
- package/catalog/agent/rules/gstack-routing.md +90 -0
- package/catalog/agent/rules/no-timeout-as-fix.md +90 -0
- package/catalog/agent/rules/package-conventions.md +80 -0
- package/catalog/agent/rules/pre-implementation.md +44 -0
- package/catalog/agent/rules/public-package-safety.md +56 -0
- package/catalog/agent/rules/repo-restrictions.md +175 -0
- package/catalog/agent/rules/rtk-routing.md +50 -0
- package/catalog/agent/rules/supported-agent-clis.md +80 -0
- package/catalog/agent/rules/ts-coding-conventions.md +68 -0
- package/catalog/agent/skills/better-auth-best-practices/SKILL.md +212 -0
- package/catalog/agent/skills/deep-research/SKILL.md +240 -0
- package/catalog/agent/skills/fix/SKILL.md +120 -0
- package/catalog/agent/skills/frontend-design/LICENSE.txt +177 -0
- package/catalog/agent/skills/frontend-design/SKILL.md +189 -0
- package/catalog/agent/skills/hooks-doctor/SKILL.md +77 -0
- package/catalog/agent/skills/logging-best-practices/SKILL.md +145 -0
- package/catalog/agent/skills/logging-best-practices/rules/context.md +157 -0
- package/catalog/agent/skills/logging-best-practices/rules/pitfalls.md +118 -0
- package/catalog/agent/skills/logging-best-practices/rules/structure.md +195 -0
- package/catalog/agent/skills/logging-best-practices/rules/wide-events.md +113 -0
- package/catalog/agent/skills/lore-protocol/SKILL.md +93 -0
- package/catalog/agent/skills/monorepo-navigation/SKILL.md.tpl +57 -0
- package/catalog/agent/skills/monorepo-navigation/examples/webpresso.md +240 -0
- package/catalog/agent/skills/plan-refine/SKILL.md +645 -0
- package/catalog/agent/skills/pll/SKILL.md +85 -0
- package/catalog/agent/skills/react-doctor/SKILL.md +54 -0
- package/catalog/agent/skills/systematic-debugging/CREATION-LOG.md +133 -0
- package/catalog/agent/skills/systematic-debugging/SKILL.md +322 -0
- package/catalog/agent/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/catalog/agent/skills/systematic-debugging/condition-based-waiting.md +120 -0
- package/catalog/agent/skills/systematic-debugging/defense-in-depth.md +128 -0
- package/catalog/agent/skills/systematic-debugging/find-polluter.sh +63 -0
- package/catalog/agent/skills/systematic-debugging/root-cause-tracing.md +183 -0
- package/catalog/agent/skills/systematic-debugging/test-academic.md +14 -0
- package/catalog/agent/skills/systematic-debugging/test-pressure-1.md +65 -0
- package/catalog/agent/skills/systematic-debugging/test-pressure-2.md +75 -0
- package/catalog/agent/skills/systematic-debugging/test-pressure-3.md +75 -0
- package/catalog/agent/skills/tanstack-query/.claude-plugin/plugin.json +12 -0
- package/catalog/agent/skills/tanstack-query/README.md +59 -0
- package/catalog/agent/skills/tanstack-query/SKILL.md +175 -0
- package/catalog/agent/skills/tanstack-query/references/best-practices.md +63 -0
- package/catalog/agent/skills/tanstack-query/references/common-patterns.md +43 -0
- package/catalog/agent/skills/tanstack-query/references/testing.md +44 -0
- package/catalog/agent/skills/tanstack-query/references/top-errors.md +19 -0
- package/catalog/agent/skills/tanstack-query/references/typescript-patterns.md +36 -0
- package/catalog/agent/skills/tanstack-query/rules/tanstack-query.md +41 -0
- package/catalog/agent/skills/tanstack-query/templates/custom-hooks-pattern.tsx +26 -0
- package/catalog/agent/skills/tanstack-query/templates/devtools-setup.tsx +13 -0
- package/catalog/agent/skills/tanstack-query/templates/error-boundary.tsx +52 -0
- package/catalog/agent/skills/tanstack-query/templates/package.json +24 -0
- package/catalog/agent/skills/tanstack-query/templates/provider-setup.tsx +19 -0
- package/catalog/agent/skills/tanstack-query/templates/query-client-config.ts +43 -0
- package/catalog/agent/skills/tanstack-query/templates/use-infinite-query.tsx +61 -0
- package/catalog/agent/skills/tanstack-query/templates/use-mutation-basic.tsx +52 -0
- package/catalog/agent/skills/tanstack-query/templates/use-mutation-optimistic.tsx +48 -0
- package/catalog/agent/skills/tanstack-query/templates/use-query-basic.tsx +77 -0
- package/catalog/agent/skills/tech-debt/SKILL.md +79 -0
- package/catalog/agent/skills/test-driven-development/SKILL.md +403 -0
- package/catalog/agent/skills/test-driven-development/testing-anti-patterns.md +317 -0
- package/catalog/agent/skills/testing-philosophy/SKILL.md +530 -0
- package/catalog/agent/skills/third-party-manifest.json +30 -0
- package/catalog/agent/skills/vercel-react-best-practices/AGENTS.md +2672 -0
- package/catalog/agent/skills/vercel-react-best-practices/README.md +127 -0
- package/catalog/agent/skills/vercel-react-best-practices/SKILL.md +212 -0
- package/catalog/agent/skills/vercel-react-best-practices/metadata.json +15 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/_sections.md +46 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/_template.md +28 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/async-api-routes.md +35 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/async-dependencies.md +48 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/async-parallel.md +24 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/bundle-conditional.md +37 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +48 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +34 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/bundle-preload.md +44 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/client-event-listeners.md +78 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +74 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +110 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/js-cache-storage.md +68 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/js-length-check-first.md +50 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +38 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +32 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +36 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +72 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +77 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +56 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +36 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/catalog/agent/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/catalog/agent/skills/verify/SKILL.md +133 -0
- package/catalog/agent/skills/web-design-guidelines/SKILL.md +53 -0
- package/catalog/agent/workflows/README.md +20 -0
- package/catalog/agent/workflows/conf.md +18 -0
- package/catalog/agent/workflows/debug.md +20 -0
- package/catalog/agent/workflows/docs.md +9 -0
- package/catalog/agent/workflows/execute-plan.md +15 -0
- package/catalog/agent/workflows/fix-all-md-warnings.md +13 -0
- package/catalog/agent/workflows/test.md +14 -0
- package/catalog/agent/workflows/write-plan.md +16 -0
- package/catalog/base-kit/.actrc.tmpl +2 -0
- package/catalog/base-kit/.editorconfig.tmpl +23 -0
- package/catalog/base-kit/.github/workflows/ci.webpresso.yml.tmpl +66 -0
- package/catalog/base-kit/.gitignore.tmpl +82 -0
- package/catalog/base-kit/.husky/commit-msg.tmpl +7 -0
- package/catalog/base-kit/.husky/pre-commit.tmpl +10 -0
- package/catalog/base-kit/.secretlintrc.json.tmpl +5 -0
- package/catalog/base-kit/commitlint.config.ts.tmpl +7 -0
- package/catalog/base-kit/e2e/.gitkeep.tmpl +0 -0
- package/catalog/base-kit/pnpm-workspace.yaml.tmpl +49 -0
- package/catalog/base-kit/scripts/audit-secret-provider-quarantine.ts.tmpl +91 -0
- package/catalog/base-kit/scripts/check-no-dev-vars.ts.tmpl +56 -0
- package/catalog/base-kit/test/.gitkeep.tmpl +0 -0
- package/catalog/blueprints/archived/.gitkeep +0 -0
- package/catalog/blueprints/completed/.gitkeep +0 -0
- package/catalog/blueprints/in-progress/.gitkeep +0 -0
- package/catalog/blueprints/parked/.gitkeep +0 -0
- package/catalog/blueprints/planned/.gitkeep +0 -0
- package/catalog/docs/templates/adr.md +38 -0
- package/catalog/docs/templates/blueprint.md +149 -0
- package/catalog/docs/templates/blueprint.yaml +110 -0
- package/catalog/docs/templates/core-doc.yaml +28 -0
- package/catalog/docs/templates/guide.md +31 -0
- package/catalog/docs/templates/guide.yaml +31 -0
- package/catalog/docs/templates/postmortem.md +60 -0
- package/catalog/docs/templates/research.md +37 -0
- package/catalog/docs/templates/runbook.md +39 -0
- package/catalog/docs/templates/system.md +44 -0
- package/catalog/docs/templates/tech-debt.md +78 -0
- package/catalog/vision/VISION.md.tmpl +33 -0
- package/commands/audit.md +13 -0
- package/commands/blueprint.md +28 -0
- package/commands/qa.md +4 -0
- package/commands/test.md +4 -0
- package/dist/esm/ai-memory/checkpoint/saver.d.ts +14 -0
- package/dist/esm/ai-memory/checkpoint/saver.js +28 -0
- package/dist/esm/ai-memory/checkpoint/types.d.ts +75 -0
- package/dist/esm/ai-memory/checkpoint/types.js +2 -0
- package/dist/esm/ai-memory/facts/consolidator.d.ts +23 -0
- package/dist/esm/ai-memory/facts/consolidator.js +134 -0
- package/dist/esm/ai-memory/facts/extractor.d.ts +28 -0
- package/dist/esm/ai-memory/facts/extractor.js +119 -0
- package/dist/esm/ai-memory/facts/types.d.ts +61 -0
- package/dist/esm/ai-memory/facts/types.js +2 -0
- package/dist/esm/ai-memory/hierarchy/retriever.d.ts +47 -0
- package/dist/esm/ai-memory/hierarchy/retriever.js +139 -0
- package/dist/esm/ai-memory/index.d.ts +11 -0
- package/dist/esm/ai-memory/index.js +6 -0
- package/dist/esm/ai-memory/store/sqlite-store.d.ts +28 -0
- package/dist/esm/ai-memory/store/sqlite-store.js +213 -0
- package/dist/esm/ai-prompts/business-canvas.d.ts +52 -0
- package/dist/esm/ai-prompts/business-canvas.js +292 -0
- package/dist/esm/ai-prompts/circuit-breaker.d.ts +35 -0
- package/dist/esm/ai-prompts/circuit-breaker.js +171 -0
- package/dist/esm/ai-prompts/experiment-draft.d.ts +86 -0
- package/dist/esm/ai-prompts/experiment-draft.js +188 -0
- package/dist/esm/ai-prompts/index.d.ts +12 -0
- package/dist/esm/ai-prompts/index.js +11 -0
- package/dist/esm/ai-prompts/persona-context.d.ts +70 -0
- package/dist/esm/ai-prompts/persona-context.js +158 -0
- package/dist/esm/ai-prompts/persona-debate.d.ts +67 -0
- package/dist/esm/ai-prompts/persona-debate.js +172 -0
- package/dist/esm/ai-prompts/persona-tools.d.ts +26 -0
- package/dist/esm/ai-prompts/persona-tools.js +172 -0
- package/dist/esm/ai-prompts/personas.d.ts +16 -0
- package/dist/esm/ai-prompts/personas.js +492 -0
- package/dist/esm/ai-prompts/rachel-planning.d.ts +28 -0
- package/dist/esm/ai-prompts/rachel-planning.js +217 -0
- package/dist/esm/ai-prompts/task-analysis.d.ts +49 -0
- package/dist/esm/ai-prompts/task-analysis.js +434 -0
- package/dist/esm/ai-prompts/types.d.ts +3 -0
- package/dist/esm/ai-prompts/types.js +2 -0
- package/dist/esm/ai-tools/index.d.ts +7 -0
- package/dist/esm/ai-tools/index.js +6 -0
- package/dist/esm/ai-tools/list-files.d.ts +3 -0
- package/dist/esm/ai-tools/list-files.js +93 -0
- package/dist/esm/ai-tools/read-file.d.ts +3 -0
- package/dist/esm/ai-tools/read-file.js +108 -0
- package/dist/esm/ai-tools/search-files.d.ts +3 -0
- package/dist/esm/ai-tools/search-files.js +166 -0
- package/dist/esm/ai-tools/shared/validate-path.d.ts +11 -0
- package/dist/esm/ai-tools/shared/validate-path.js +25 -0
- package/dist/esm/ai-tools/types.d.ts +370 -0
- package/dist/esm/ai-tools/types.js +2 -0
- package/dist/esm/ai-tools/write-file.d.ts +3 -0
- package/dist/esm/ai-tools/write-file.js +165 -0
- package/dist/esm/audit/_budgets.d.ts +28 -0
- package/dist/esm/audit/_budgets.js +60 -0
- package/dist/esm/audit/absolute-path-policy.d.ts +5 -0
- package/dist/esm/audit/absolute-path-policy.js +97 -0
- package/dist/esm/audit/agent-cost.d.ts +3 -0
- package/dist/esm/audit/agent-cost.js +111 -0
- package/dist/esm/audit/agents.d.ts +3 -0
- package/dist/esm/audit/agents.js +331 -0
- package/dist/esm/audit/ai-contracts.d.ts +3 -0
- package/dist/esm/audit/ai-contracts.js +238 -0
- package/dist/esm/audit/architecture-drift.d.ts +33 -0
- package/dist/esm/audit/architecture-drift.js +364 -0
- package/dist/esm/audit/audit-mutation-score.d.ts +43 -0
- package/dist/esm/audit/audit-mutation-score.js +92 -0
- package/dist/esm/audit/audit-no-ambient-root.d.ts +29 -0
- package/dist/esm/audit/audit-no-ambient-root.js +83 -0
- package/dist/esm/audit/audit-tph-detect.d.ts +49 -0
- package/dist/esm/audit/audit-tph-detect.js +248 -0
- package/dist/esm/audit/audit-tph-e2e-detect.d.ts +27 -0
- package/dist/esm/audit/audit-tph-e2e-detect.js +84 -0
- package/dist/esm/audit/audit-tph-e2e-runner.d.ts +8 -0
- package/dist/esm/audit/audit-tph-e2e-runner.js +106 -0
- package/dist/esm/audit/audit-tph-e2e.d.ts +16 -0
- package/dist/esm/audit/audit-tph-e2e.js +17 -0
- package/dist/esm/audit/audit-tph-runner.d.ts +10 -0
- package/dist/esm/audit/audit-tph-runner.js +115 -0
- package/dist/esm/audit/audit-tph.d.ts +17 -0
- package/dist/esm/audit/audit-tph.js +38 -0
- package/dist/esm/audit/blueprint-db-consistency.d.ts +15 -0
- package/dist/esm/audit/blueprint-db-consistency.js +109 -0
- package/dist/esm/audit/blueprint-lifecycle-sql.d.ts +17 -0
- package/dist/esm/audit/blueprint-lifecycle-sql.js +136 -0
- package/dist/esm/audit/broken-refs.d.ts +26 -0
- package/dist/esm/audit/broken-refs.js +181 -0
- package/dist/esm/audit/bucket-boundary.d.ts +21 -0
- package/dist/esm/audit/bucket-boundary.js +330 -0
- package/dist/esm/audit/commit-message-lore.d.ts +41 -0
- package/dist/esm/audit/commit-message-lore.js +113 -0
- package/dist/esm/audit/compile-drift.d.ts +3 -0
- package/dist/esm/audit/compile-drift.js +42 -0
- package/dist/esm/audit/cross-repo-correlation.d.ts +14 -0
- package/dist/esm/audit/cross-repo-correlation.js +50 -0
- package/dist/esm/audit/gitignore-agent-surfaces.d.ts +3 -0
- package/dist/esm/audit/gitignore-agent-surfaces.js +68 -0
- package/dist/esm/audit/hook-surface.d.ts +82 -0
- package/dist/esm/audit/hook-surface.js +251 -0
- package/dist/esm/audit/memory-rotation.d.ts +31 -0
- package/dist/esm/audit/memory-rotation.js +137 -0
- package/dist/esm/audit/memory-unified.d.ts +3 -0
- package/dist/esm/audit/memory-unified.js +46 -0
- package/dist/esm/audit/open-source-licenses.d.ts +4 -0
- package/dist/esm/audit/open-source-licenses.js +224 -0
- package/dist/esm/audit/package-surface.d.ts +7 -0
- package/dist/esm/audit/package-surface.js +674 -0
- package/dist/esm/audit/repo-guardrails.d.ts +89 -0
- package/dist/esm/audit/repo-guardrails.js +875 -0
- package/dist/esm/audit/roadmap-links.d.ts +7 -0
- package/dist/esm/audit/roadmap-links.js +235 -0
- package/dist/esm/audit/run-stryker.d.ts +9 -0
- package/dist/esm/audit/run-stryker.js +24 -0
- package/dist/esm/audit/shell.d.ts +17 -0
- package/dist/esm/audit/shell.js +32 -0
- package/dist/esm/audit/skill-sizes.d.ts +25 -0
- package/dist/esm/audit/skill-sizes.js +153 -0
- package/dist/esm/audit/tech-debt-cadence.d.ts +16 -0
- package/dist/esm/audit/tech-debt-cadence.js +101 -0
- package/dist/esm/audit/tech-debt.d.ts +9 -0
- package/dist/esm/audit/tech-debt.js +107 -0
- package/dist/esm/audit/vision-doc.d.ts +21 -0
- package/dist/esm/audit/vision-doc.js +136 -0
- package/dist/esm/blueprint/aggregate.d.ts +146 -0
- package/dist/esm/blueprint/aggregate.js +217 -0
- package/dist/esm/blueprint/context.d.ts +70 -0
- package/dist/esm/blueprint/context.js +301 -0
- package/dist/esm/blueprint/core/parser.d.ts +53 -0
- package/dist/esm/blueprint/core/parser.js +281 -0
- package/dist/esm/blueprint/core/schema.d.ts +163 -0
- package/dist/esm/blueprint/core/schema.js +98 -0
- package/dist/esm/blueprint/core/types.d.ts +13 -0
- package/dist/esm/blueprint/core/types.js +5 -0
- package/dist/esm/blueprint/core/validation/criteria.d.ts +6 -0
- package/dist/esm/blueprint/core/validation/criteria.js +15 -0
- package/dist/esm/blueprint/core/validation/dependencies.d.ts +19 -0
- package/dist/esm/blueprint/core/validation/dependencies.js +113 -0
- package/dist/esm/blueprint/core/validation/index.d.ts +13 -0
- package/dist/esm/blueprint/core/validation/index.js +11 -0
- package/dist/esm/blueprint/core/validation/links.d.ts +18 -0
- package/dist/esm/blueprint/core/validation/links.js +47 -0
- package/dist/esm/blueprint/core/validation/phases.d.ts +12 -0
- package/dist/esm/blueprint/core/validation/phases.js +18 -0
- package/dist/esm/blueprint/core/validation/state.d.ts +9 -0
- package/dist/esm/blueprint/core/validation/state.js +123 -0
- package/dist/esm/blueprint/core/validation/task-blocks.d.ts +27 -0
- package/dist/esm/blueprint/core/validation/task-blocks.js +48 -0
- package/dist/esm/blueprint/core/validation/task-sections.d.ts +14 -0
- package/dist/esm/blueprint/core/validation/task-sections.js +60 -0
- package/dist/esm/blueprint/core/validation/template.d.ts +9 -0
- package/dist/esm/blueprint/core/validation/template.js +65 -0
- package/dist/esm/blueprint/cross-repo/allowlist.d.ts +28 -0
- package/dist/esm/blueprint/cross-repo/allowlist.js +87 -0
- package/dist/esm/blueprint/cross-repo/audit.d.ts +49 -0
- package/dist/esm/blueprint/cross-repo/audit.js +161 -0
- package/dist/esm/blueprint/cross-repo/resolver.d.ts +28 -0
- package/dist/esm/blueprint/cross-repo/resolver.js +32 -0
- package/dist/esm/blueprint/dag/cycle-detector.d.ts +12 -0
- package/dist/esm/blueprint/dag/cycle-detector.js +46 -0
- package/dist/esm/blueprint/dag/executor.d.ts +140 -0
- package/dist/esm/blueprint/dag/executor.js +292 -0
- package/dist/esm/blueprint/dag/index.d.ts +20 -0
- package/dist/esm/blueprint/dag/index.js +17 -0
- package/dist/esm/blueprint/dag/interfaces.d.ts +56 -0
- package/dist/esm/blueprint/dag/interfaces.js +13 -0
- package/dist/esm/blueprint/dag/local/independence.d.ts +107 -0
- package/dist/esm/blueprint/dag/local/independence.js +231 -0
- package/dist/esm/blueprint/dag/local/index.d.ts +14 -0
- package/dist/esm/blueprint/dag/local/index.js +14 -0
- package/dist/esm/blueprint/dag/local/package-graph.d.ts +66 -0
- package/dist/esm/blueprint/dag/local/package-graph.js +148 -0
- package/dist/esm/blueprint/dag/plan-parser.d.ts +54 -0
- package/dist/esm/blueprint/dag/plan-parser.js +236 -0
- package/dist/esm/blueprint/dag/task-graph-algorithms.d.ts +13 -0
- package/dist/esm/blueprint/dag/task-graph-algorithms.js +236 -0
- package/dist/esm/blueprint/dag/task-graph.d.ts +171 -0
- package/dist/esm/blueprint/dag/task-graph.js +370 -0
- package/dist/esm/blueprint/dag/types.d.ts +17 -0
- package/dist/esm/blueprint/dag/types.js +2 -0
- package/dist/esm/blueprint/db/cold-start.d.ts +8 -0
- package/dist/esm/blueprint/db/cold-start.js +45 -0
- package/dist/esm/blueprint/db/connection.d.ts +8 -0
- package/dist/esm/blueprint/db/connection.js +45 -0
- package/dist/esm/blueprint/db/enums.d.ts +76 -0
- package/dist/esm/blueprint/db/enums.js +37 -0
- package/dist/esm/blueprint/db/ingester.d.ts +25 -0
- package/dist/esm/blueprint/db/ingester.js +307 -0
- package/dist/esm/blueprint/db/legacy-migration.d.ts +41 -0
- package/dist/esm/blueprint/db/legacy-migration.js +122 -0
- package/dist/esm/blueprint/db/migrations/run.d.ts +3 -0
- package/dist/esm/blueprint/db/migrations/run.js +53 -0
- package/dist/esm/blueprint/db/parser/blueprint-db-parser.d.ts +69 -0
- package/dist/esm/blueprint/db/parser/blueprint-db-parser.js +408 -0
- package/dist/esm/blueprint/db/parser/tech-debt-db-parser.d.ts +33 -0
- package/dist/esm/blueprint/db/parser/tech-debt-db-parser.js +134 -0
- package/dist/esm/blueprint/db/paths.d.ts +104 -0
- package/dist/esm/blueprint/db/paths.js +192 -0
- package/dist/esm/blueprint/db/sqlite.d.ts +32 -0
- package/dist/esm/blueprint/db/sqlite.js +46 -0
- package/dist/esm/blueprint/db/template-runner.d.ts +8 -0
- package/dist/esm/blueprint/db/template-runner.js +65 -0
- package/dist/esm/blueprint/db/templates.d.ts +11 -0
- package/dist/esm/blueprint/db/templates.js +226 -0
- package/dist/esm/blueprint/db/workspace-config.d.ts +38 -0
- package/dist/esm/blueprint/db/workspace-config.js +150 -0
- package/dist/esm/blueprint/evidence.d.ts +140 -0
- package/dist/esm/blueprint/evidence.js +152 -0
- package/dist/esm/blueprint/execution/artifacts.d.ts +9 -0
- package/dist/esm/blueprint/execution/artifacts.js +45 -0
- package/dist/esm/blueprint/execution/metadata.d.ts +11 -0
- package/dist/esm/blueprint/execution/metadata.js +46 -0
- package/dist/esm/blueprint/execution/progress-bridge.d.ts +117 -0
- package/dist/esm/blueprint/execution/progress-bridge.js +302 -0
- package/dist/esm/blueprint/execution/types.d.ts +233 -0
- package/dist/esm/blueprint/execution/types.js +99 -0
- package/dist/esm/blueprint/export/spec-kit/_field-map.d.ts +12 -0
- package/dist/esm/blueprint/export/spec-kit/_field-map.js +33 -0
- package/dist/esm/blueprint/export/spec-kit/constitution.d.ts +7 -0
- package/dist/esm/blueprint/export/spec-kit/constitution.js +61 -0
- package/dist/esm/blueprint/export/spec-kit/index.d.ts +13 -0
- package/dist/esm/blueprint/export/spec-kit/index.js +17 -0
- package/dist/esm/blueprint/export/spec-kit/plan.d.ts +7 -0
- package/dist/esm/blueprint/export/spec-kit/plan.js +43 -0
- package/dist/esm/blueprint/export/spec-kit/spec.d.ts +7 -0
- package/dist/esm/blueprint/export/spec-kit/spec.js +35 -0
- package/dist/esm/blueprint/export/spec-kit/tasks.d.ts +3 -0
- package/dist/esm/blueprint/export/spec-kit/tasks.js +32 -0
- package/dist/esm/blueprint/freshness.d.ts +78 -0
- package/dist/esm/blueprint/freshness.js +127 -0
- package/dist/esm/blueprint/graph/index.d.ts +5 -0
- package/dist/esm/blueprint/graph/index.js +5 -0
- package/dist/esm/blueprint/graph/mermaid-parser.d.ts +3 -0
- package/dist/esm/blueprint/graph/mermaid-parser.js +93 -0
- package/dist/esm/blueprint/graph/mermaid-serializer.d.ts +3 -0
- package/dist/esm/blueprint/graph/mermaid-serializer.js +20 -0
- package/dist/esm/blueprint/graph/schema.d.ts +89 -0
- package/dist/esm/blueprint/graph/schema.js +104 -0
- package/dist/esm/blueprint/graph/task-graph-adapter.d.ts +6 -0
- package/dist/esm/blueprint/graph/task-graph-adapter.js +30 -0
- package/dist/esm/blueprint/history/diff.d.ts +36 -0
- package/dist/esm/blueprint/history/diff.js +122 -0
- package/dist/esm/blueprint/index.d.ts +37 -0
- package/dist/esm/blueprint/index.js +46 -0
- package/dist/esm/blueprint/lifecycle/audit.d.ts +17 -0
- package/dist/esm/blueprint/lifecycle/audit.js +423 -0
- package/dist/esm/blueprint/lifecycle/engine.d.ts +38 -0
- package/dist/esm/blueprint/lifecycle/engine.js +157 -0
- package/dist/esm/blueprint/lifecycle/local.d.ts +15 -0
- package/dist/esm/blueprint/lifecycle/local.js +92 -0
- package/dist/esm/blueprint/local.d.ts +21 -0
- package/dist/esm/blueprint/local.js +25 -0
- package/dist/esm/blueprint/markdown/helpers.d.ts +17 -0
- package/dist/esm/blueprint/markdown/helpers.js +92 -0
- package/dist/esm/blueprint/markdown/task-heading.d.ts +8 -0
- package/dist/esm/blueprint/markdown/task-heading.js +19 -0
- package/dist/esm/blueprint/next-action.d.ts +27 -0
- package/dist/esm/blueprint/next-action.js +45 -0
- package/dist/esm/blueprint/project-resolver.d.ts +31 -0
- package/dist/esm/blueprint/project-resolver.js +142 -0
- package/dist/esm/blueprint/projection-ready.d.ts +3 -0
- package/dist/esm/blueprint/projection-ready.js +29 -0
- package/dist/esm/blueprint/projects.d.ts +96 -0
- package/dist/esm/blueprint/projects.js +383 -0
- package/dist/esm/blueprint/query/types.d.ts +53 -0
- package/dist/esm/blueprint/query/types.js +16 -0
- package/dist/esm/blueprint/roadmap.d.ts +24 -0
- package/dist/esm/blueprint/roadmap.js +82 -0
- package/dist/esm/blueprint/service/BlueprintCreationService.d.ts +47 -0
- package/dist/esm/blueprint/service/BlueprintCreationService.js +260 -0
- package/dist/esm/blueprint/service/BlueprintService.d.ts +70 -0
- package/dist/esm/blueprint/service/BlueprintService.js +190 -0
- package/dist/esm/blueprint/service/TechDebtService.d.ts +102 -0
- package/dist/esm/blueprint/service/TechDebtService.js +337 -0
- package/dist/esm/blueprint/service/TrackedDocumentService.d.ts +198 -0
- package/dist/esm/blueprint/service/TrackedDocumentService.js +162 -0
- package/dist/esm/blueprint/service/blueprint-records.d.ts +8 -0
- package/dist/esm/blueprint/service/blueprint-records.js +124 -0
- package/dist/esm/blueprint/service/blueprint-tech-debt-links.d.ts +3 -0
- package/dist/esm/blueprint/service/blueprint-tech-debt-links.js +35 -0
- package/dist/esm/blueprint/service/priority-scoring.d.ts +21 -0
- package/dist/esm/blueprint/service/priority-scoring.js +85 -0
- package/dist/esm/blueprint/service/scanner.d.ts +56 -0
- package/dist/esm/blueprint/service/scanner.js +212 -0
- package/dist/esm/blueprint/sync/auth.d.ts +27 -0
- package/dist/esm/blueprint/sync/auth.js +59 -0
- package/dist/esm/blueprint/sync/client.d.ts +64 -0
- package/dist/esm/blueprint/sync/client.js +232 -0
- package/dist/esm/blueprint/sync/replica.d.ts +55 -0
- package/dist/esm/blueprint/sync/replica.js +139 -0
- package/dist/esm/blueprint/sync/types.d.ts +178 -0
- package/dist/esm/blueprint/sync/types.js +18 -0
- package/dist/esm/blueprint/tech-debt/index.d.ts +9 -0
- package/dist/esm/blueprint/tech-debt/index.js +9 -0
- package/dist/esm/blueprint/tech-debt/parser.d.ts +56 -0
- package/dist/esm/blueprint/tech-debt/parser.js +133 -0
- package/dist/esm/blueprint/tech-debt/query-types.d.ts +130 -0
- package/dist/esm/blueprint/tech-debt/query-types.js +37 -0
- package/dist/esm/blueprint/tech-debt/schema.d.ts +151 -0
- package/dist/esm/blueprint/tech-debt/schema.js +145 -0
- package/dist/esm/blueprint/test-utils/blueprint-mocks.d.ts +31 -0
- package/dist/esm/blueprint/test-utils/blueprint-mocks.js +63 -0
- package/dist/esm/blueprint/tracked-document/index.d.ts +11 -0
- package/dist/esm/blueprint/tracked-document/index.js +11 -0
- package/dist/esm/blueprint/tracked-document/parser.d.ts +113 -0
- package/dist/esm/blueprint/tracked-document/parser.js +197 -0
- package/dist/esm/blueprint/tracked-document/query-types.d.ts +43 -0
- package/dist/esm/blueprint/tracked-document/query-types.js +8 -0
- package/dist/esm/blueprint/tracked-document/schema.d.ts +80 -0
- package/dist/esm/blueprint/tracked-document/schema.js +89 -0
- package/dist/esm/blueprint/types/execution-backend.d.ts +17 -0
- package/dist/esm/blueprint/types/execution-backend.js +16 -0
- package/dist/esm/blueprint/utils/archive.d.ts +69 -0
- package/dist/esm/blueprint/utils/archive.js +209 -0
- package/dist/esm/blueprint/utils/blueprint-root.d.ts +9 -0
- package/dist/esm/blueprint/utils/blueprint-root.js +77 -0
- package/dist/esm/blueprint/utils/conflict.d.ts +125 -0
- package/dist/esm/blueprint/utils/conflict.js +111 -0
- package/dist/esm/blueprint/utils/decision-trace-artifacts.d.ts +16 -0
- package/dist/esm/blueprint/utils/decision-trace-artifacts.js +37 -0
- package/dist/esm/blueprint/utils/errors.d.ts +14 -0
- package/dist/esm/blueprint/utils/errors.js +44 -0
- package/dist/esm/blueprint/utils/freshness.d.ts +21 -0
- package/dist/esm/blueprint/utils/freshness.js +66 -0
- package/dist/esm/blueprint/utils/package-assets.d.ts +6 -0
- package/dist/esm/blueprint/utils/package-assets.js +20 -0
- package/dist/esm/blueprint/utils/string.d.ts +8 -0
- package/dist/esm/blueprint/utils/string.js +10 -0
- package/dist/esm/blueprint/utils/tech-debt-root.d.ts +4 -0
- package/dist/esm/blueprint/utils/tech-debt-root.js +18 -0
- package/dist/esm/blueprint/verification.d.ts +116 -0
- package/dist/esm/blueprint/verification.js +246 -0
- package/dist/esm/build/generate-skills-dir.d.ts +14 -0
- package/dist/esm/build/generate-skills-dir.js +56 -0
- package/dist/esm/ci/act-helper.d.ts +29 -0
- package/dist/esm/ci/act-helper.js +106 -0
- package/dist/esm/ci/act-runner.d.ts +24 -0
- package/dist/esm/ci/act-runner.js +71 -0
- package/dist/esm/cli/auto-update/detect-pm.d.ts +76 -0
- package/dist/esm/cli/auto-update/detect-pm.js +237 -0
- package/dist/esm/cli/auto-update/installer.d.ts +65 -0
- package/dist/esm/cli/auto-update/installer.js +171 -0
- package/dist/esm/cli/auto-update/log.d.ts +46 -0
- package/dist/esm/cli/auto-update/log.js +107 -0
- package/dist/esm/cli/auto-update/run.d.ts +23 -0
- package/dist/esm/cli/auto-update/run.js +116 -0
- package/dist/esm/cli/auto-update/skip.d.ts +34 -0
- package/dist/esm/cli/auto-update/skip.js +84 -0
- package/dist/esm/cli/bootstrap.d.ts +28 -0
- package/dist/esm/cli/bootstrap.js +55 -0
- package/dist/esm/cli/cli.d.ts +11 -0
- package/dist/esm/cli/cli.js +310 -0
- package/dist/esm/cli/commands/audit-core.d.ts +61 -0
- package/dist/esm/cli/commands/audit-core.js +87 -0
- package/dist/esm/cli/commands/audit.d.ts +10 -0
- package/dist/esm/cli/commands/audit.js +273 -0
- package/dist/esm/cli/commands/bench/index.d.ts +6 -0
- package/dist/esm/cli/commands/bench/index.js +54 -0
- package/dist/esm/cli/commands/bench/session-memory.d.ts +129 -0
- package/dist/esm/cli/commands/bench/session-memory.js +242 -0
- package/dist/esm/cli/commands/blueprint/db-commands.d.ts +60 -0
- package/dist/esm/cli/commands/blueprint/db-commands.js +244 -0
- package/dist/esm/cli/commands/blueprint/execution-io.d.ts +80 -0
- package/dist/esm/cli/commands/blueprint/execution-io.js +78 -0
- package/dist/esm/cli/commands/blueprint/execution-spec.d.ts +45 -0
- package/dist/esm/cli/commands/blueprint/execution-spec.js +177 -0
- package/dist/esm/cli/commands/blueprint/execution-state.d.ts +17 -0
- package/dist/esm/cli/commands/blueprint/execution-state.js +38 -0
- package/dist/esm/cli/commands/blueprint/execution.d.ts +74 -0
- package/dist/esm/cli/commands/blueprint/execution.js +256 -0
- package/dist/esm/cli/commands/blueprint/mutations.d.ts +109 -0
- package/dist/esm/cli/commands/blueprint/mutations.js +357 -0
- package/dist/esm/cli/commands/blueprint/router-dispatch.d.ts +50 -0
- package/dist/esm/cli/commands/blueprint/router-dispatch.js +358 -0
- package/dist/esm/cli/commands/blueprint/router-output.d.ts +25 -0
- package/dist/esm/cli/commands/blueprint/router-output.js +190 -0
- package/dist/esm/cli/commands/blueprint/router.d.ts +117 -0
- package/dist/esm/cli/commands/blueprint/router.js +480 -0
- package/dist/esm/cli/commands/blueprint/template-resolver.d.ts +19 -0
- package/dist/esm/cli/commands/blueprint/template-resolver.js +55 -0
- package/dist/esm/cli/commands/ci.d.ts +31 -0
- package/dist/esm/cli/commands/ci.js +76 -0
- package/dist/esm/cli/commands/compile.d.ts +21 -0
- package/dist/esm/cli/commands/compile.js +329 -0
- package/dist/esm/cli/commands/config.d.ts +55 -0
- package/dist/esm/cli/commands/config.js +272 -0
- package/dist/esm/cli/commands/dev.d.ts +17 -0
- package/dist/esm/cli/commands/dev.js +56 -0
- package/dist/esm/cli/commands/docs-core.d.ts +26 -0
- package/dist/esm/cli/commands/docs-core.js +88 -0
- package/dist/esm/cli/commands/docs.d.ts +9 -0
- package/dist/esm/cli/commands/docs.js +46 -0
- package/dist/esm/cli/commands/doctor.d.ts +10 -0
- package/dist/esm/cli/commands/doctor.js +53 -0
- package/dist/esm/cli/commands/e2e.d.ts +22 -0
- package/dist/esm/cli/commands/e2e.js +99 -0
- package/dist/esm/cli/commands/err.d.ts +11 -0
- package/dist/esm/cli/commands/err.js +73 -0
- package/dist/esm/cli/commands/format.d.ts +4 -0
- package/dist/esm/cli/commands/format.js +48 -0
- package/dist/esm/cli/commands/gain/index.d.ts +10 -0
- package/dist/esm/cli/commands/gain/index.js +83 -0
- package/dist/esm/cli/commands/hooks.d.ts +3 -0
- package/dist/esm/cli/commands/hooks.js +21 -0
- package/dist/esm/cli/commands/init/config.d.ts +36 -0
- package/dist/esm/cli/commands/init/config.js +116 -0
- package/dist/esm/cli/commands/init/detect-consumer.d.ts +49 -0
- package/dist/esm/cli/commands/init/detect-consumer.js +279 -0
- package/dist/esm/cli/commands/init/gitignore-patcher.d.ts +9 -0
- package/dist/esm/cli/commands/init/gitignore-patcher.js +133 -0
- package/dist/esm/cli/commands/init/host-visibility.d.ts +37 -0
- package/dist/esm/cli/commands/init/host-visibility.js +105 -0
- package/dist/esm/cli/commands/init/index.d.ts +23 -0
- package/dist/esm/cli/commands/init/index.js +751 -0
- package/dist/esm/cli/commands/init/merge.d.ts +33 -0
- package/dist/esm/cli/commands/init/merge.js +111 -0
- package/dist/esm/cli/commands/init/preflight.d.ts +15 -0
- package/dist/esm/cli/commands/init/preflight.js +87 -0
- package/dist/esm/cli/commands/init/prompts.d.ts +24 -0
- package/dist/esm/cli/commands/init/prompts.js +126 -0
- package/dist/esm/cli/commands/init/scaffold-agent-rules.d.ts +11 -0
- package/dist/esm/cli/commands/init/scaffold-agent-rules.js +58 -0
- package/dist/esm/cli/commands/init/scaffold-agent-skills.d.ts +11 -0
- package/dist/esm/cli/commands/init/scaffold-agent-skills.js +58 -0
- package/dist/esm/cli/commands/init/scaffold-agent.d.ts +15 -0
- package/dist/esm/cli/commands/init/scaffold-agent.js +63 -0
- package/dist/esm/cli/commands/init/scaffold-agents-md.d.ts +16 -0
- package/dist/esm/cli/commands/init/scaffold-agents-md.js +182 -0
- package/dist/esm/cli/commands/init/scaffold-base-kit.d.ts +9 -0
- package/dist/esm/cli/commands/init/scaffold-base-kit.js +183 -0
- package/dist/esm/cli/commands/init/scaffold-blueprints.d.ts +8 -0
- package/dist/esm/cli/commands/init/scaffold-blueprints.js +84 -0
- package/dist/esm/cli/commands/init/scaffold-catalog-ignore.d.ts +14 -0
- package/dist/esm/cli/commands/init/scaffold-catalog-ignore.js +48 -0
- package/dist/esm/cli/commands/init/scaffold-docs.d.ts +8 -0
- package/dist/esm/cli/commands/init/scaffold-docs.js +15 -0
- package/dist/esm/cli/commands/init/scaffold-monorepo-nav.d.ts +19 -0
- package/dist/esm/cli/commands/init/scaffold-monorepo-nav.js +101 -0
- package/dist/esm/cli/commands/init/scaffolders/agent-hooks/codex-global-normalize.d.ts +20 -0
- package/dist/esm/cli/commands/init/scaffolders/agent-hooks/codex-global-normalize.js +258 -0
- package/dist/esm/cli/commands/init/scaffolders/agent-hooks/codex-global-ownership.d.ts +3 -0
- package/dist/esm/cli/commands/init/scaffolders/agent-hooks/codex-global-ownership.js +36 -0
- package/dist/esm/cli/commands/init/scaffolders/agent-hooks/codex-ownership.d.ts +11 -0
- package/dist/esm/cli/commands/init/scaffolders/agent-hooks/codex-ownership.js +62 -0
- package/dist/esm/cli/commands/init/scaffolders/agent-hooks/codex-trust-sync.d.ts +24 -0
- package/dist/esm/cli/commands/init/scaffolders/agent-hooks/codex-trust-sync.js +101 -0
- package/dist/esm/cli/commands/init/scaffolders/agent-hooks/index.d.ts +68 -0
- package/dist/esm/cli/commands/init/scaffolders/agent-hooks/index.js +585 -0
- package/dist/esm/cli/commands/init/scaffolders/agent-hooks/skill-hooks.d.ts +21 -0
- package/dist/esm/cli/commands/init/scaffolders/agent-hooks/skill-hooks.js +123 -0
- package/dist/esm/cli/commands/init/scaffolders/audit-hooks/index.d.ts +16 -0
- package/dist/esm/cli/commands/init/scaffolders/audit-hooks/index.js +65 -0
- package/dist/esm/cli/commands/init/scaffolders/claude-plugin/index.d.ts +33 -0
- package/dist/esm/cli/commands/init/scaffolders/claude-plugin/index.js +67 -0
- package/dist/esm/cli/commands/init/scaffolders/claude-rules/index.d.ts +7 -0
- package/dist/esm/cli/commands/init/scaffolders/claude-rules/index.js +127 -0
- package/dist/esm/cli/commands/init/scaffolders/codex-cli/index.d.ts +17 -0
- package/dist/esm/cli/commands/init/scaffolders/codex-cli/index.js +27 -0
- package/dist/esm/cli/commands/init/scaffolders/codex-mcp/index.d.ts +79 -0
- package/dist/esm/cli/commands/init/scaffolders/codex-mcp/index.js +189 -0
- package/dist/esm/cli/commands/init/scaffolders/context-mode/index.d.ts +24 -0
- package/dist/esm/cli/commands/init/scaffolders/context-mode/index.js +165 -0
- package/dist/esm/cli/commands/init/scaffolders/example-skill/index.d.ts +15 -0
- package/dist/esm/cli/commands/init/scaffolders/example-skill/index.js +31 -0
- package/dist/esm/cli/commands/init/scaffolders/gstack/index.d.ts +92 -0
- package/dist/esm/cli/commands/init/scaffolders/gstack/index.js +228 -0
- package/dist/esm/cli/commands/init/scaffolders/lore-commits/index.d.ts +12 -0
- package/dist/esm/cli/commands/init/scaffolders/lore-commits/index.js +24 -0
- package/dist/esm/cli/commands/init/scaffolders/omc/index.d.ts +41 -0
- package/dist/esm/cli/commands/init/scaffolders/omc/index.js +54 -0
- package/dist/esm/cli/commands/init/scaffolders/omx/index.d.ts +63 -0
- package/dist/esm/cli/commands/init/scaffolders/omx/index.js +251 -0
- package/dist/esm/cli/commands/init/scaffolders/opencode-plugin/index.d.ts +9 -0
- package/dist/esm/cli/commands/init/scaffolders/opencode-plugin/index.js +86 -0
- package/dist/esm/cli/commands/init/scaffolders/rtk/index.d.ts +25 -0
- package/dist/esm/cli/commands/init/scaffolders/rtk/index.js +55 -0
- package/dist/esm/cli/commands/init/scaffolders/runtime-check/index.d.ts +15 -0
- package/dist/esm/cli/commands/init/scaffolders/runtime-check/index.js +37 -0
- package/dist/esm/cli/commands/init/scaffolders/spinner.d.ts +23 -0
- package/dist/esm/cli/commands/init/scaffolders/spinner.js +32 -0
- package/dist/esm/cli/commands/init/scaffolders/subagents/index.d.ts +7 -0
- package/dist/esm/cli/commands/init/scaffolders/subagents/index.js +88 -0
- package/dist/esm/cli/commands/init/scaffolders/version-pin.d.ts +19 -0
- package/dist/esm/cli/commands/init/scaffolders/version-pin.js +95 -0
- package/dist/esm/cli/commands/init/scaffolders/vision/index.d.ts +10 -0
- package/dist/esm/cli/commands/init/scaffolders/vision/index.js +67 -0
- package/dist/esm/cli/commands/init/scaffolders/vision/interview.d.ts +22 -0
- package/dist/esm/cli/commands/init/scaffolders/vision/interview.js +73 -0
- package/dist/esm/cli/commands/init/scaffolders/workspace-config/index.d.ts +28 -0
- package/dist/esm/cli/commands/init/scaffolders/workspace-config/index.js +40 -0
- package/dist/esm/cli/commands/lint.d.ts +4 -0
- package/dist/esm/cli/commands/lint.js +40 -0
- package/dist/esm/cli/commands/mcp.d.ts +4 -0
- package/dist/esm/cli/commands/mcp.js +18 -0
- package/dist/esm/cli/commands/roadmap.d.ts +7 -0
- package/dist/esm/cli/commands/roadmap.js +79 -0
- package/dist/esm/cli/commands/rule.d.ts +8 -0
- package/dist/esm/cli/commands/rule.js +59 -0
- package/dist/esm/cli/commands/skill.d.ts +20 -0
- package/dist/esm/cli/commands/skill.js +160 -0
- package/dist/esm/cli/commands/sync.d.ts +14 -0
- package/dist/esm/cli/commands/sync.js +132 -0
- package/dist/esm/cli/commands/tech-debt/index.d.ts +5 -0
- package/dist/esm/cli/commands/tech-debt/index.js +5 -0
- package/dist/esm/cli/commands/tech-debt/router-dispatch.d.ts +22 -0
- package/dist/esm/cli/commands/tech-debt/router-dispatch.js +436 -0
- package/dist/esm/cli/commands/tech-debt/router.d.ts +10 -0
- package/dist/esm/cli/commands/tech-debt/router.js +30 -0
- package/dist/esm/cli/commands/test.d.ts +12 -0
- package/dist/esm/cli/commands/test.js +88 -0
- package/dist/esm/cli/commands/typecheck.d.ts +18 -0
- package/dist/esm/cli/commands/typecheck.js +57 -0
- package/dist/esm/cli/commands/worktree/router-dispatch.d.ts +39 -0
- package/dist/esm/cli/commands/worktree/router-dispatch.js +217 -0
- package/dist/esm/cli/commands/worktree/router.d.ts +10 -0
- package/dist/esm/cli/commands/worktree/router.js +34 -0
- package/dist/esm/cli/utils.d.ts +45 -0
- package/dist/esm/cli/utils.js +156 -0
- package/dist/esm/codex/app-server/client.d.ts +50 -0
- package/dist/esm/codex/app-server/client.js +202 -0
- package/dist/esm/codex/app-server/types.d.ts +240 -0
- package/dist/esm/codex/app-server/types.js +103 -0
- package/dist/esm/compiler/flatten.d.ts +10 -0
- package/dist/esm/compiler/flatten.js +71 -0
- package/dist/esm/compiler/manifests/_versions.d.ts +7 -0
- package/dist/esm/compiler/manifests/_versions.js +7 -0
- package/dist/esm/compiler/manifests/claude.d.ts +9 -0
- package/dist/esm/compiler/manifests/claude.js +36 -0
- package/dist/esm/compiler/manifests/codex.d.ts +9 -0
- package/dist/esm/compiler/manifests/codex.js +23 -0
- package/dist/esm/compiler/manifests/cursor.d.ts +9 -0
- package/dist/esm/compiler/manifests/cursor.js +28 -0
- package/dist/esm/compiler/manifests/gemini.d.ts +9 -0
- package/dist/esm/compiler/manifests/gemini.js +20 -0
- package/dist/esm/compiler/memory/directives.d.ts +23 -0
- package/dist/esm/compiler/memory/directives.js +108 -0
- package/dist/esm/compiler/memory/directives.schema.d.ts +55 -0
- package/dist/esm/compiler/memory/directives.schema.js +32 -0
- package/dist/esm/compiler/memory/merger.d.ts +17 -0
- package/dist/esm/compiler/memory/merger.js +122 -0
- package/dist/esm/compiler/memory/precedence.d.ts +15 -0
- package/dist/esm/compiler/memory/precedence.js +40 -0
- package/dist/esm/compiler/memory/provenance.d.ts +13 -0
- package/dist/esm/compiler/memory/provenance.js +8 -0
- package/dist/esm/compiler/orphans.d.ts +8 -0
- package/dist/esm/compiler/orphans.js +58 -0
- package/dist/esm/compiler/schema.d.ts +47 -0
- package/dist/esm/compiler/schema.js +49 -0
- package/dist/esm/config/docs-lint/cli/check-internal-links.d.ts +13 -0
- package/dist/esm/config/docs-lint/cli/check-internal-links.js +161 -0
- package/dist/esm/config/docs-lint/cli/check-refs.d.ts +9 -0
- package/dist/esm/config/docs-lint/cli/check-refs.js +165 -0
- package/dist/esm/config/docs-lint/cli/check-stale.d.ts +9 -0
- package/dist/esm/config/docs-lint/cli/check-stale.js +116 -0
- package/dist/esm/config/docs-lint/cli/commands/migrate-command.d.ts +22 -0
- package/dist/esm/config/docs-lint/cli/commands/migrate-command.js +254 -0
- package/dist/esm/config/docs-lint/cli/commands/validate-command.d.ts +28 -0
- package/dist/esm/config/docs-lint/cli/commands/validate-command.js +363 -0
- package/dist/esm/config/docs-lint/cli/factories.d.ts +54 -0
- package/dist/esm/config/docs-lint/cli/factories.js +85 -0
- package/dist/esm/config/docs-lint/cli/fixers/code-language.d.ts +34 -0
- package/dist/esm/config/docs-lint/cli/fixers/code-language.js +277 -0
- package/dist/esm/config/docs-lint/cli/interfaces.d.ts +55 -0
- package/dist/esm/config/docs-lint/cli/interfaces.js +6 -0
- package/dist/esm/config/docs-lint/cli/migrate.d.ts +3 -0
- package/dist/esm/config/docs-lint/cli/migrate.js +53 -0
- package/dist/esm/config/docs-lint/cli/planning-path.d.ts +2 -0
- package/dist/esm/config/docs-lint/cli/planning-path.js +29 -0
- package/dist/esm/config/docs-lint/cli/validate.d.ts +3 -0
- package/dist/esm/config/docs-lint/cli/validate.js +47 -0
- package/dist/esm/config/docs-lint/cli/validators/code-density.d.ts +7 -0
- package/dist/esm/config/docs-lint/cli/validators/code-density.js +15 -0
- package/dist/esm/config/docs-lint/cli/validators/command-safety.d.ts +19 -0
- package/dist/esm/config/docs-lint/cli/validators/command-safety.js +195 -0
- package/dist/esm/config/docs-lint/cli/validators/context-limits.d.ts +58 -0
- package/dist/esm/config/docs-lint/cli/validators/context-limits.js +212 -0
- package/dist/esm/config/docs-lint/cli/validators/deprecated-commands.d.ts +9 -0
- package/dist/esm/config/docs-lint/cli/validators/deprecated-commands.js +112 -0
- package/dist/esm/config/docs-lint/cli/validators/filename.d.ts +12 -0
- package/dist/esm/config/docs-lint/cli/validators/filename.js +128 -0
- package/dist/esm/config/docs-lint/cli/validators/imports.d.ts +30 -0
- package/dist/esm/config/docs-lint/cli/validators/imports.js +163 -0
- package/dist/esm/config/docs-lint/cli/validators/index.d.ts +8 -0
- package/dist/esm/config/docs-lint/cli/validators/index.js +8 -0
- package/dist/esm/config/docs-lint/cli/validators/links.d.ts +30 -0
- package/dist/esm/config/docs-lint/cli/validators/links.js +134 -0
- package/dist/esm/config/docs-lint/cli/validators/markdownlint.d.ts +11 -0
- package/dist/esm/config/docs-lint/cli/validators/markdownlint.js +17 -0
- package/dist/esm/config/docs-lint/cli/validators/structure.d.ts +10 -0
- package/dist/esm/config/docs-lint/cli/validators/structure.js +75 -0
- package/dist/esm/config/docs-lint/generator/frontmatter-validator.d.ts +6 -0
- package/dist/esm/config/docs-lint/generator/frontmatter-validator.js +72 -0
- package/dist/esm/config/docs-lint/generator/index.d.ts +11 -0
- package/dist/esm/config/docs-lint/generator/index.js +10 -0
- package/dist/esm/config/docs-lint/generator/markdown-generator.d.ts +6 -0
- package/dist/esm/config/docs-lint/generator/markdown-generator.js +78 -0
- package/dist/esm/config/docs-lint/generator/template-loader.d.ts +18 -0
- package/dist/esm/config/docs-lint/generator/template-loader.js +66 -0
- package/dist/esm/config/docs-lint/generator/types.d.ts +100 -0
- package/dist/esm/config/docs-lint/generator/types.js +2 -0
- package/dist/esm/config/docs-lint/index.d.ts +34 -0
- package/dist/esm/config/docs-lint/index.js +3 -0
- package/dist/esm/config/docs-lint/parsers/bold-metadata.d.ts +28 -0
- package/dist/esm/config/docs-lint/parsers/bold-metadata.js +176 -0
- package/dist/esm/config/docs-lint/parsers/frontmatter.d.ts +20 -0
- package/dist/esm/config/docs-lint/parsers/frontmatter.js +67 -0
- package/dist/esm/config/docs-lint/parsers/index.d.ts +3 -0
- package/dist/esm/config/docs-lint/parsers/index.js +3 -0
- package/dist/esm/config/docs-lint/schemas/adaptation.d.ts +28 -0
- package/dist/esm/config/docs-lint/schemas/adaptation.js +18 -0
- package/dist/esm/config/docs-lint/schemas/agents.d.ts +76 -0
- package/dist/esm/config/docs-lint/schemas/agents.js +29 -0
- package/dist/esm/config/docs-lint/schemas/audit.d.ts +52 -0
- package/dist/esm/config/docs-lint/schemas/audit.js +20 -0
- package/dist/esm/config/docs-lint/schemas/common.d.ts +68 -0
- package/dist/esm/config/docs-lint/schemas/common.js +73 -0
- package/dist/esm/config/docs-lint/schemas/cookbook.d.ts +48 -0
- package/dist/esm/config/docs-lint/schemas/cookbook.js +21 -0
- package/dist/esm/config/docs-lint/schemas/core.d.ts +189 -0
- package/dist/esm/config/docs-lint/schemas/core.js +54 -0
- package/dist/esm/config/docs-lint/schemas/decision.d.ts +18 -0
- package/dist/esm/config/docs-lint/schemas/decision.js +9 -0
- package/dist/esm/config/docs-lint/schemas/draft.d.ts +36 -0
- package/dist/esm/config/docs-lint/schemas/draft.js +35 -0
- package/dist/esm/config/docs-lint/schemas/evaluation.d.ts +43 -0
- package/dist/esm/config/docs-lint/schemas/evaluation.js +22 -0
- package/dist/esm/config/docs-lint/schemas/implementation-plan.d.ts +62 -0
- package/dist/esm/config/docs-lint/schemas/implementation-plan.js +34 -0
- package/dist/esm/config/docs-lint/schemas/index.d.ts +51 -0
- package/dist/esm/config/docs-lint/schemas/index.js +109 -0
- package/dist/esm/config/docs-lint/schemas/ongoing-initiative.d.ts +99 -0
- package/dist/esm/config/docs-lint/schemas/ongoing-initiative.js +31 -0
- package/dist/esm/config/docs-lint/schemas/parent-roadmap.d.ts +39 -0
- package/dist/esm/config/docs-lint/schemas/parent-roadmap.js +24 -0
- package/dist/esm/config/docs-lint/schemas/research.d.ts +26 -0
- package/dist/esm/config/docs-lint/schemas/research.js +20 -0
- package/dist/esm/config/docs-lint/schemas/rule.d.ts +48 -0
- package/dist/esm/config/docs-lint/schemas/rule.js +12 -0
- package/dist/esm/config/e2e-preset/index.d.ts +17 -0
- package/dist/esm/config/e2e-preset/index.js +29 -0
- package/dist/esm/config/e2e-preset/playwright.d.ts +17 -0
- package/dist/esm/config/e2e-preset/playwright.js +12 -0
- package/dist/esm/config/launch/contracts.d.ts +100 -0
- package/dist/esm/config/launch/contracts.js +13 -0
- package/dist/esm/config/launch/dev-contracts.d.ts +47 -0
- package/dist/esm/config/launch/dev-contracts.js +8 -0
- package/dist/esm/config/launch/dev-manifest.d.ts +42 -0
- package/dist/esm/config/launch/dev-manifest.js +196 -0
- package/dist/esm/config/launch/index.d.ts +14 -0
- package/dist/esm/config/launch/index.js +12 -0
- package/dist/esm/config/launch/launch-profile.d.ts +47 -0
- package/dist/esm/config/launch/launch-profile.js +39 -0
- package/dist/esm/config/launch/provision-stack.d.ts +64 -0
- package/dist/esm/config/launch/provision-stack.js +45 -0
- package/dist/esm/config/oxlint/code-safety.d.ts +19 -0
- package/dist/esm/config/oxlint/code-safety.js +90 -0
- package/dist/esm/config/oxlint/foundation-purity.d.ts +22 -0
- package/dist/esm/config/oxlint/foundation-purity.js +53 -0
- package/dist/esm/config/oxlint/graphql-conventions.d.ts +24 -0
- package/dist/esm/config/oxlint/graphql-conventions.js +204 -0
- package/dist/esm/config/oxlint/import-hygiene.d.ts +35 -0
- package/dist/esm/config/oxlint/import-hygiene.js +208 -0
- package/dist/esm/config/oxlint/index.d.ts +23 -0
- package/dist/esm/config/oxlint/index.js +29 -0
- package/dist/esm/config/oxlint/monorepo-paths.d.ts +19 -0
- package/dist/esm/config/oxlint/monorepo-paths.js +129 -0
- package/dist/esm/config/oxlint/oxlint-config.fixture.d.ts +3 -0
- package/dist/esm/config/oxlint/oxlint-config.fixture.js +5 -0
- package/dist/esm/config/oxlint/query-patterns.d.ts +25 -0
- package/dist/esm/config/oxlint/query-patterns.js +126 -0
- package/dist/esm/config/oxlint/testing-quality.d.ts +36 -0
- package/dist/esm/config/oxlint/testing-quality.js +187 -0
- package/dist/esm/config/oxlint/tier-boundaries.d.ts +36 -0
- package/dist/esm/config/oxlint/tier-boundaries.js +134 -0
- package/dist/esm/config/stryker/index.d.ts +44 -0
- package/dist/esm/config/stryker/index.js +79 -0
- package/dist/esm/config/test-preset/index.d.ts +2 -0
- package/dist/esm/config/test-preset/index.js +2 -0
- package/dist/esm/config/test-preset/vitest.d.ts +26 -0
- package/dist/esm/config/test-preset/vitest.js +31 -0
- package/dist/esm/config/tsconfig/base.json +37 -0
- package/dist/esm/config/tsconfig/cloudflare.json +10 -0
- package/dist/esm/config/tsconfig/library.json +16 -0
- package/dist/esm/config/tsconfig/react-library.json +9 -0
- package/dist/esm/config/tsconfig/react-router.json +10 -0
- package/dist/esm/config/vitest/bun-sqlite-shim.d.ts +14 -0
- package/dist/esm/config/vitest/bun-sqlite-shim.js +14 -0
- package/dist/esm/config/vitest/consumer-package.d.ts +4 -0
- package/dist/esm/config/vitest/consumer-package.js +63 -0
- package/dist/esm/config/vitest/flakiness-reporter.d.ts +7 -0
- package/dist/esm/config/vitest/flakiness-reporter.js +53 -0
- package/dist/esm/config/vitest/generated-runtime-aliases.d.ts +6 -0
- package/dist/esm/config/vitest/generated-runtime-aliases.js +3 -0
- package/dist/esm/config/vitest/node-setup.d.ts +6 -0
- package/dist/esm/config/vitest/node-setup.js +16 -0
- package/dist/esm/config/vitest/node.d.ts +43 -0
- package/dist/esm/config/vitest/node.js +180 -0
- package/dist/esm/config/vitest/pool-defaults.d.ts +11 -0
- package/dist/esm/config/vitest/pool-defaults.js +43 -0
- package/dist/esm/config/vitest/react-router.d.ts +22 -0
- package/dist/esm/config/vitest/react-router.js +83 -0
- package/dist/esm/config/vitest/react-setup.d.ts +13 -0
- package/dist/esm/config/vitest/react-setup.js +27 -0
- package/dist/esm/config/vitest/react.d.ts +22 -0
- package/dist/esm/config/vitest/react.js +85 -0
- package/dist/esm/config/vitest/version-guard.d.ts +7 -0
- package/dist/esm/config/vitest/version-guard.js +42 -0
- package/dist/esm/config/vitest/workers.d.ts +28 -0
- package/dist/esm/config/vitest/workers.js +44 -0
- package/dist/esm/config/workers-test/cloudflare-types.d.ts +30 -0
- package/dist/esm/config/workers-test/cloudflare-types.js +2 -0
- package/dist/esm/config/workers-test/durable-objects.d.ts +60 -0
- package/dist/esm/config/workers-test/durable-objects.js +73 -0
- package/dist/esm/config/workers-test/env.d.ts +58 -0
- package/dist/esm/config/workers-test/env.js +74 -0
- package/dist/esm/config/workers-test/execution-context.d.ts +21 -0
- package/dist/esm/config/workers-test/execution-context.js +22 -0
- package/dist/esm/config/workers-test/index.d.ts +16 -0
- package/dist/esm/config/workers-test/index.js +15 -0
- package/dist/esm/config/workers-test/requests.d.ts +44 -0
- package/dist/esm/config/workers-test/requests.js +71 -0
- package/dist/esm/config/workers-test/setup.d.ts +63 -0
- package/dist/esm/config/workers-test/setup.js +86 -0
- package/dist/esm/content/audit.d.ts +20 -0
- package/dist/esm/content/audit.js +164 -0
- package/dist/esm/content/dispatch.d.ts +32 -0
- package/dist/esm/content/dispatch.js +204 -0
- package/dist/esm/content/loader.d.ts +50 -0
- package/dist/esm/content/loader.js +166 -0
- package/dist/esm/content/schema.d.ts +123 -0
- package/dist/esm/content/schema.js +125 -0
- package/dist/esm/dev/dev-link-state.d.ts +22 -0
- package/dist/esm/dev/dev-link-state.js +51 -0
- package/dist/esm/dev/index.d.ts +2 -0
- package/dist/esm/dev/index.js +2 -0
- package/dist/esm/dev/load-manifest.d.ts +35 -0
- package/dist/esm/dev/load-manifest.js +182 -0
- package/dist/esm/dev/restore-dev-links/index.d.ts +30 -0
- package/dist/esm/dev/restore-dev-links/index.js +103 -0
- package/dist/esm/docs-linter/blueprint-plan.d.ts +80 -0
- package/dist/esm/docs-linter/blueprint-plan.js +427 -0
- package/dist/esm/docs-linter/index.d.ts +8 -0
- package/dist/esm/docs-linter/index.js +7 -0
- package/dist/esm/docs-linter/types.d.ts +16 -0
- package/dist/esm/docs-linter/types.js +8 -0
- package/dist/esm/e2e/command-builder.d.ts +3 -0
- package/dist/esm/e2e/command-builder.js +98 -0
- package/dist/esm/e2e/command-host-adapter.d.ts +30 -0
- package/dist/esm/e2e/command-host-adapter.js +70 -0
- package/dist/esm/e2e/config.d.ts +26 -0
- package/dist/esm/e2e/config.js +39 -0
- package/dist/esm/e2e/execution.d.ts +14 -0
- package/dist/esm/e2e/execution.js +148 -0
- package/dist/esm/e2e/host-adapter.d.ts +6 -0
- package/dist/esm/e2e/host-adapter.js +22 -0
- package/dist/esm/e2e/index.d.ts +9 -0
- package/dist/esm/e2e/index.js +8 -0
- package/dist/esm/e2e/load-host-adapter.d.ts +43 -0
- package/dist/esm/e2e/load-host-adapter.js +150 -0
- package/dist/esm/e2e/run-planner.d.ts +11 -0
- package/dist/esm/e2e/run-planner.js +186 -0
- package/dist/esm/e2e/suite-registry.d.ts +9 -0
- package/dist/esm/e2e/suite-registry.js +30 -0
- package/dist/esm/e2e/types.d.ts +81 -0
- package/dist/esm/e2e/types.js +2 -0
- package/dist/esm/format/errors.d.ts +2 -0
- package/dist/esm/format/errors.js +15 -0
- package/dist/esm/format/format.d.ts +2 -0
- package/dist/esm/format/format.js +16 -0
- package/dist/esm/format/index.d.ts +35 -0
- package/dist/esm/format/index.js +67 -0
- package/dist/esm/hooks/check-dev-link/index.d.ts +19 -0
- package/dist/esm/hooks/check-dev-link/index.js +87 -0
- package/dist/esm/hooks/doctor.d.ts +34 -0
- package/dist/esm/hooks/doctor.js +699 -0
- package/dist/esm/hooks/guard-switch/index.d.ts +3 -0
- package/dist/esm/hooks/guard-switch/index.js +18 -0
- package/dist/esm/hooks/guard-switch/state.d.ts +4 -0
- package/dist/esm/hooks/guard-switch/state.js +30 -0
- package/dist/esm/hooks/post-tool/lint-after-edit.d.ts +17 -0
- package/dist/esm/hooks/post-tool/lint-after-edit.js +57 -0
- package/dist/esm/hooks/pretool-guard/dev-routing.d.ts +21 -0
- package/dist/esm/hooks/pretool-guard/dev-routing.js +658 -0
- package/dist/esm/hooks/pretool-guard/index.d.ts +5 -0
- package/dist/esm/hooks/pretool-guard/index.js +11 -0
- package/dist/esm/hooks/pretool-guard/logger.d.ts +32 -0
- package/dist/esm/hooks/pretool-guard/logger.js +82 -0
- package/dist/esm/hooks/pretool-guard/runner.d.ts +16 -0
- package/dist/esm/hooks/pretool-guard/runner.js +149 -0
- package/dist/esm/hooks/pretool-guard/validators/blueprint.d.ts +3 -0
- package/dist/esm/hooks/pretool-guard/validators/blueprint.js +16 -0
- package/dist/esm/hooks/pretool-guard/validators/command-file.d.ts +3 -0
- package/dist/esm/hooks/pretool-guard/validators/command-file.js +36 -0
- package/dist/esm/hooks/pretool-guard/validators/complexity.d.ts +3 -0
- package/dist/esm/hooks/pretool-guard/validators/complexity.js +24 -0
- package/dist/esm/hooks/pretool-guard/validators/dangerous-commands.d.ts +4 -0
- package/dist/esm/hooks/pretool-guard/validators/dangerous-commands.js +60 -0
- package/dist/esm/hooks/pretool-guard/validators/docs-governance.d.ts +2 -0
- package/dist/esm/hooks/pretool-guard/validators/docs-governance.js +2 -0
- package/dist/esm/hooks/pretool-guard/validators/file-conventions.d.ts +3 -0
- package/dist/esm/hooks/pretool-guard/validators/file-conventions.js +67 -0
- package/dist/esm/hooks/pretool-guard/validators/forbidden-commands.d.ts +66 -0
- package/dist/esm/hooks/pretool-guard/validators/forbidden-commands.js +439 -0
- package/dist/esm/hooks/pretool-guard/validators/index.d.ts +14 -0
- package/dist/esm/hooks/pretool-guard/validators/index.js +26 -0
- package/dist/esm/hooks/pretool-guard/validators/mcp-redirect.d.ts +16 -0
- package/dist/esm/hooks/pretool-guard/validators/mcp-redirect.js +50 -0
- package/dist/esm/hooks/pretool-guard/validators/package-imports.d.ts +10 -0
- package/dist/esm/hooks/pretool-guard/validators/package-imports.js +36 -0
- package/dist/esm/hooks/pretool-guard/validators/package-imports.types.d.ts +8 -0
- package/dist/esm/hooks/pretool-guard/validators/package-imports.types.js +2 -0
- package/dist/esm/hooks/pretool-guard/validators/path-contract.d.ts +15 -0
- package/dist/esm/hooks/pretool-guard/validators/path-contract.js +105 -0
- package/dist/esm/hooks/pretool-guard/validators/plan-frontmatter.d.ts +13 -0
- package/dist/esm/hooks/pretool-guard/validators/plan-frontmatter.js +121 -0
- package/dist/esm/hooks/pretool-guard/validators/skip-result.d.ts +3 -0
- package/dist/esm/hooks/pretool-guard/validators/skip-result.js +4 -0
- package/dist/esm/hooks/pretool-guard/validators/test-quality.d.ts +22 -0
- package/dist/esm/hooks/pretool-guard/validators/test-quality.js +218 -0
- package/dist/esm/hooks/pretool-guard/validators/ux-quality.d.ts +3 -0
- package/dist/esm/hooks/pretool-guard/validators/ux-quality.js +80 -0
- package/dist/esm/hooks/sessionstart/index.d.ts +16 -0
- package/dist/esm/hooks/sessionstart/index.js +122 -0
- package/dist/esm/hooks/sessionstart/update-banner.d.ts +2 -0
- package/dist/esm/hooks/sessionstart/update-banner.js +66 -0
- package/dist/esm/hooks/shared/hook-bootstrap.d.ts +28 -0
- package/dist/esm/hooks/shared/hook-bootstrap.js +62 -0
- package/dist/esm/hooks/shared/mcp-sentinel.d.ts +10 -0
- package/dist/esm/hooks/shared/mcp-sentinel.js +106 -0
- package/dist/esm/hooks/shared/routing-block.d.ts +8 -0
- package/dist/esm/hooks/shared/routing-block.js +140 -0
- package/dist/esm/hooks/shared/types.d.ts +24 -0
- package/dist/esm/hooks/shared/types.js +48 -0
- package/dist/esm/hooks/shared/validators/blueprint.d.ts +17 -0
- package/dist/esm/hooks/shared/validators/blueprint.js +98 -0
- package/dist/esm/hooks/shared/validators/docs-governance.d.ts +3 -0
- package/dist/esm/hooks/shared/validators/docs-governance.js +30 -0
- package/dist/esm/hooks/shared/worktree-root.d.ts +2 -0
- package/dist/esm/hooks/shared/worktree-root.js +46 -0
- package/dist/esm/hooks/stop/qa-changed-files.d.ts +14 -0
- package/dist/esm/hooks/stop/qa-changed-files.js +96 -0
- package/dist/esm/hooks/test-quality-check.d.ts +5 -0
- package/dist/esm/hooks/test-quality-check.js +61 -0
- package/dist/esm/index.d.ts +13 -0
- package/dist/esm/index.js +11 -0
- package/dist/esm/lint/index.d.ts +53 -0
- package/dist/esm/lint/index.js +115 -0
- package/dist/esm/local.d.ts +19 -0
- package/dist/esm/local.js +14 -0
- package/dist/esm/mcp/_tail-hints.d.ts +31 -0
- package/dist/esm/mcp/_tail-hints.js +86 -0
- package/dist/esm/mcp/auto-discover.d.ts +65 -0
- package/dist/esm/mcp/auto-discover.js +108 -0
- package/dist/esm/mcp/blueprint-server.d.ts +137 -0
- package/dist/esm/mcp/blueprint-server.js +2131 -0
- package/dist/esm/mcp/blueprint-server.platform-first.test-harness.d.ts +31 -0
- package/dist/esm/mcp/blueprint-server.platform-first.test-harness.js +216 -0
- package/dist/esm/mcp/blueprint-server.test-harness.d.ts +49 -0
- package/dist/esm/mcp/blueprint-server.test-harness.js +195 -0
- package/dist/esm/mcp/cli.d.ts +10 -0
- package/dist/esm/mcp/cli.js +48 -0
- package/dist/esm/mcp/runners/test.d.ts +36 -0
- package/dist/esm/mcp/runners/test.js +330 -0
- package/dist/esm/mcp/server.d.ts +24 -0
- package/dist/esm/mcp/server.js +142 -0
- package/dist/esm/mcp/tools/_shared/project-root.d.ts +29 -0
- package/dist/esm/mcp/tools/_shared/project-root.js +61 -0
- package/dist/esm/mcp/tools/_shared/redact.d.ts +2 -0
- package/dist/esm/mcp/tools/_shared/redact.js +29 -0
- package/dist/esm/mcp/tools/_shared/result.d.ts +79 -0
- package/dist/esm/mcp/tools/_shared/result.js +85 -0
- package/dist/esm/mcp/tools/_shared/run-command.d.ts +37 -0
- package/dist/esm/mcp/tools/_shared/run-command.js +122 -0
- package/dist/esm/mcp/tools/_shared/test-budget-contract.d.ts +18 -0
- package/dist/esm/mcp/tools/_shared/test-budget-contract.js +24 -0
- package/dist/esm/mcp/tools/_shared/ui-detection.d.ts +2 -0
- package/dist/esm/mcp/tools/_shared/ui-detection.js +19 -0
- package/dist/esm/mcp/tools/audit.d.ts +45 -0
- package/dist/esm/mcp/tools/audit.js +345 -0
- package/dist/esm/mcp/tools/ci-act.d.ts +4 -0
- package/dist/esm/mcp/tools/ci-act.js +91 -0
- package/dist/esm/mcp/tools/e2e.d.ts +31 -0
- package/dist/esm/mcp/tools/e2e.js +116 -0
- package/dist/esm/mcp/tools/format.d.ts +27 -0
- package/dist/esm/mcp/tools/format.js +107 -0
- package/dist/esm/mcp/tools/lint.d.ts +26 -0
- package/dist/esm/mcp/tools/lint.js +229 -0
- package/dist/esm/mcp/tools/qa.d.ts +39 -0
- package/dist/esm/mcp/tools/qa.js +218 -0
- package/dist/esm/mcp/tools/test.d.ts +25 -0
- package/dist/esm/mcp/tools/test.js +112 -0
- package/dist/esm/mcp/tools/typecheck.d.ts +27 -0
- package/dist/esm/mcp/tools/typecheck.js +186 -0
- package/dist/esm/mcp/tools/worker-tail.d.ts +4 -0
- package/dist/esm/mcp/tools/worker-tail.js +121 -0
- package/dist/esm/output-transforms/generic.d.ts +3 -0
- package/dist/esm/output-transforms/generic.js +20 -0
- package/dist/esm/output-transforms/index.d.ts +34 -0
- package/dist/esm/output-transforms/index.js +41 -0
- package/dist/esm/output-transforms/metadata.d.ts +8 -0
- package/dist/esm/output-transforms/metadata.js +24 -0
- package/dist/esm/output-transforms/oxlint.d.ts +3 -0
- package/dist/esm/output-transforms/oxlint.js +85 -0
- package/dist/esm/output-transforms/passthrough.d.ts +3 -0
- package/dist/esm/output-transforms/passthrough.js +11 -0
- package/dist/esm/output-transforms/rulesync.d.ts +3 -0
- package/dist/esm/output-transforms/rulesync.js +80 -0
- package/dist/esm/output-transforms/should-compact.d.ts +7 -0
- package/dist/esm/output-transforms/should-compact.js +14 -0
- package/dist/esm/output-transforms/tsc.d.ts +3 -0
- package/dist/esm/output-transforms/tsc.js +45 -0
- package/dist/esm/output-transforms/vitest.d.ts +3 -0
- package/dist/esm/output-transforms/vitest.js +120 -0
- package/dist/esm/package.json +92 -0
- package/dist/esm/paths/state-root.d.ts +23 -0
- package/dist/esm/paths/state-root.js +121 -0
- package/dist/esm/quality-engine/command-builder.d.ts +141 -0
- package/dist/esm/quality-engine/command-builder.js +285 -0
- package/dist/esm/quality-engine/index.d.ts +15 -0
- package/dist/esm/quality-engine/index.js +16 -0
- package/dist/esm/quality-engine/log-paths.d.ts +44 -0
- package/dist/esm/quality-engine/log-paths.js +73 -0
- package/dist/esm/quality-engine/package-import-rules.d.ts +69 -0
- package/dist/esm/quality-engine/package-import-rules.js +491 -0
- package/dist/esm/quality-engine/target-resolver.d.ts +187 -0
- package/dist/esm/quality-engine/target-resolver.js +552 -0
- package/dist/esm/quality-engine/test-classification.d.ts +7 -0
- package/dist/esm/quality-engine/test-classification.js +85 -0
- package/dist/esm/quality-engine/workspace-config.d.ts +68 -0
- package/dist/esm/quality-engine/workspace-config.js +131 -0
- package/dist/esm/runners/claude-subagent/index.d.ts +11 -0
- package/dist/esm/runners/claude-subagent/index.js +114 -0
- package/dist/esm/runners/claude-subagent/types.d.ts +7 -0
- package/dist/esm/runners/claude-subagent/types.js +5 -0
- package/dist/esm/runners/codex-exec/index.d.ts +16 -0
- package/dist/esm/runners/codex-exec/index.js +105 -0
- package/dist/esm/runners/index.d.ts +3 -0
- package/dist/esm/runners/index.js +2 -0
- package/dist/esm/runners/local-worktree/index.d.ts +19 -0
- package/dist/esm/runners/local-worktree/index.js +85 -0
- package/dist/esm/runners/local-worktree/path.d.ts +10 -0
- package/dist/esm/runners/local-worktree/path.js +14 -0
- package/dist/esm/runners/select.d.ts +12 -0
- package/dist/esm/runners/select.js +38 -0
- package/dist/esm/runners/types.d.ts +70 -0
- package/dist/esm/runners/types.js +62 -0
- package/dist/esm/secret-gate/runner.d.ts +25 -0
- package/dist/esm/secret-gate/runner.js +106 -0
- package/dist/esm/session-memory/fetch-index.d.ts +13 -0
- package/dist/esm/session-memory/fetch-index.js +80 -0
- package/dist/esm/session-memory/repo-hash.d.ts +3 -0
- package/dist/esm/session-memory/repo-hash.js +20 -0
- package/dist/esm/session-memory/session.d.ts +10 -0
- package/dist/esm/session-memory/session.js +105 -0
- package/dist/esm/session-memory/store.d.ts +17 -0
- package/dist/esm/session-memory/store.js +168 -0
- package/dist/esm/session-memory/types.d.ts +58 -0
- package/dist/esm/session-memory/types.js +2 -0
- package/dist/esm/symlinker/consumers.d.ts +97 -0
- package/dist/esm/symlinker/consumers.js +87 -0
- package/dist/esm/symlinker/frontmatter.d.ts +15 -0
- package/dist/esm/symlinker/frontmatter.js +20 -0
- package/dist/esm/symlinker/index.d.ts +84 -0
- package/dist/esm/symlinker/index.js +496 -0
- package/dist/esm/symlinker/test-utils/assert-symlink-resolves.d.ts +12 -0
- package/dist/esm/symlinker/test-utils/assert-symlink-resolves.js +24 -0
- package/dist/esm/symlinker/toml.d.ts +11 -0
- package/dist/esm/symlinker/toml.js +16 -0
- package/dist/esm/symlinker/unified-sync.d.ts +64 -0
- package/dist/esm/symlinker/unified-sync.js +362 -0
- package/dist/esm/telemetry/_endpoint.d.ts +3 -0
- package/dist/esm/telemetry/_endpoint.js +4 -0
- package/dist/esm/telemetry/setup-tthw.d.ts +10 -0
- package/dist/esm/telemetry/setup-tthw.js +34 -0
- package/dist/esm/test/command-builder.d.ts +25 -0
- package/dist/esm/test/command-builder.js +98 -0
- package/dist/esm/test/index.d.ts +3 -0
- package/dist/esm/test/index.js +3 -0
- package/dist/esm/test/target-resolver.d.ts +13 -0
- package/dist/esm/test/target-resolver.js +53 -0
- package/dist/esm/typecheck/index.d.ts +52 -0
- package/dist/esm/typecheck/index.js +135 -0
- package/dist/esm/vite/bundle-budget.d.ts +37 -0
- package/dist/esm/vite/bundle-budget.js +151 -0
- package/dist/esm/vite/chunk-load-recovery.d.ts +18 -0
- package/dist/esm/vite/chunk-load-recovery.js +62 -0
- package/dist/esm/vite/index.d.ts +3 -0
- package/dist/esm/vite/index.js +3 -0
- package/dist/esm/vite/local.d.ts +16 -0
- package/dist/esm/vite/local.js +164 -0
- package/just/dev-kit.just +24 -0
- package/just/e2e-kit.just +13 -0
- package/just/test-kit.just +10 -0
- package/package.json +675 -0
- package/skills/better-auth-best-practices/SKILL.md +212 -0
- package/skills/deep-research/SKILL.md +240 -0
- package/skills/fix/SKILL.md +120 -0
- package/skills/frontend-design/LICENSE.txt +177 -0
- package/skills/frontend-design/SKILL.md +189 -0
- package/skills/hooks-doctor/SKILL.md +77 -0
- package/skills/logging-best-practices/SKILL.md +145 -0
- package/skills/lore-protocol/SKILL.md +93 -0
- package/skills/plan-refine/SKILL.md +645 -0
- package/skills/pll/SKILL.md +85 -0
- package/skills/react-doctor/SKILL.md +54 -0
- package/skills/systematic-debugging/SKILL.md +322 -0
- package/skills/tanstack-query/SKILL.md +175 -0
- package/skills/tech-debt/SKILL.md +79 -0
- package/skills/test-driven-development/SKILL.md +403 -0
- package/skills/testing-philosophy/SKILL.md +530 -0
- package/skills/vercel-react-best-practices/SKILL.md +212 -0
- package/skills/verify/SKILL.md +133 -0
- package/skills/web-design-guidelines/SKILL.md +53 -0
- package/tsconfig/base.json +37 -0
- package/tsconfig/cloudflare.json +10 -0
- package/tsconfig/library.json +16 -0
- package/tsconfig/react-library.json +9 -0
- package/tsconfig/react-router.json +10 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Use Transitions for Non-Urgent Updates
|
|
3
|
+
impact: MEDIUM
|
|
4
|
+
impactDescription: maintains UI responsiveness
|
|
5
|
+
tags: rerender, transitions, startTransition, performance
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Use Transitions for Non-Urgent Updates
|
|
9
|
+
|
|
10
|
+
Mark frequent, non-urgent state updates as transitions to maintain UI responsiveness.
|
|
11
|
+
|
|
12
|
+
**Incorrect (blocks UI on every scroll):**
|
|
13
|
+
|
|
14
|
+
```tsx
|
|
15
|
+
function ScrollTracker() {
|
|
16
|
+
const [scrollY, setScrollY] = useState(0)
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
const handler = () => setScrollY(window.scrollY)
|
|
19
|
+
window.addEventListener('scroll', handler, { passive: true })
|
|
20
|
+
return () => window.removeEventListener('scroll', handler)
|
|
21
|
+
}, [])
|
|
22
|
+
}
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
**Correct (non-blocking updates):**
|
|
26
|
+
|
|
27
|
+
```tsx
|
|
28
|
+
import { startTransition } from 'react'
|
|
29
|
+
|
|
30
|
+
function ScrollTracker() {
|
|
31
|
+
const [scrollY, setScrollY] = useState(0)
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
const handler = () => {
|
|
34
|
+
startTransition(() => setScrollY(window.scrollY))
|
|
35
|
+
}
|
|
36
|
+
window.addEventListener('scroll', handler, { passive: true })
|
|
37
|
+
return () => window.removeEventListener('scroll', handler)
|
|
38
|
+
}, [])
|
|
39
|
+
}
|
|
40
|
+
```
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Use after() for Non-Blocking Operations
|
|
3
|
+
impact: MEDIUM
|
|
4
|
+
impactDescription: faster response times
|
|
5
|
+
tags: server, async, logging, analytics, side-effects
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Use after() for Non-Blocking Operations
|
|
9
|
+
|
|
10
|
+
Use Next.js's `after()` to schedule work that should execute after a response is sent. This prevents logging, analytics, and other side effects from blocking the response.
|
|
11
|
+
|
|
12
|
+
**Incorrect (blocks response):**
|
|
13
|
+
|
|
14
|
+
```tsx
|
|
15
|
+
import { logUserAction } from '@/app/utils'
|
|
16
|
+
|
|
17
|
+
export async function POST(request: Request) {
|
|
18
|
+
// Perform mutation
|
|
19
|
+
await updateDatabase(request)
|
|
20
|
+
|
|
21
|
+
// Logging blocks the response
|
|
22
|
+
const userAgent = request.headers.get('user-agent') || 'unknown'
|
|
23
|
+
await logUserAction({ userAgent })
|
|
24
|
+
|
|
25
|
+
return new Response(JSON.stringify({ status: 'success' }), {
|
|
26
|
+
status: 200,
|
|
27
|
+
headers: { 'Content-Type': 'application/json' },
|
|
28
|
+
})
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**Correct (non-blocking):**
|
|
33
|
+
|
|
34
|
+
```tsx
|
|
35
|
+
import { after } from 'next/server'
|
|
36
|
+
import { headers, cookies } from 'next/headers'
|
|
37
|
+
import { logUserAction } from '@/app/utils'
|
|
38
|
+
|
|
39
|
+
export async function POST(request: Request) {
|
|
40
|
+
// Perform mutation
|
|
41
|
+
await updateDatabase(request)
|
|
42
|
+
|
|
43
|
+
// Log after response is sent
|
|
44
|
+
after(async () => {
|
|
45
|
+
const userAgent = (await headers()).get('user-agent') || 'unknown'
|
|
46
|
+
const sessionCookie = (await cookies()).get('session-id')?.value || 'anonymous'
|
|
47
|
+
|
|
48
|
+
logUserAction({ sessionCookie, userAgent })
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
return new Response(JSON.stringify({ status: 'success' }), {
|
|
52
|
+
status: 200,
|
|
53
|
+
headers: { 'Content-Type': 'application/json' },
|
|
54
|
+
})
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
The response is sent immediately while logging happens in the background.
|
|
59
|
+
|
|
60
|
+
**Common use cases:**
|
|
61
|
+
|
|
62
|
+
- Analytics tracking
|
|
63
|
+
- Audit logging
|
|
64
|
+
- Sending notifications
|
|
65
|
+
- Cache invalidation
|
|
66
|
+
- Cleanup tasks
|
|
67
|
+
|
|
68
|
+
**Important notes:**
|
|
69
|
+
|
|
70
|
+
- `after()` runs even if the response fails or redirects
|
|
71
|
+
- Works in Server Actions, Route Handlers, and Server Components
|
|
72
|
+
|
|
73
|
+
Reference: [https://nextjs.org/docs/app/api-reference/functions/after](https://nextjs.org/docs/app/api-reference/functions/after)
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Authenticate Server Actions Like API Routes
|
|
3
|
+
impact: CRITICAL
|
|
4
|
+
impactDescription: prevents unauthorized access to server mutations
|
|
5
|
+
tags: server, server-actions, authentication, security, authorization
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Authenticate Server Actions Like API Routes
|
|
9
|
+
|
|
10
|
+
**Impact: CRITICAL (prevents unauthorized access to server mutations)**
|
|
11
|
+
|
|
12
|
+
Server Actions (functions with `"use server"`) are exposed as public endpoints, just like API routes. Always verify authentication and authorization **inside** each Server Action—do not rely solely on middleware, layout guards, or page-level checks, as Server Actions can be invoked directly.
|
|
13
|
+
|
|
14
|
+
Next.js documentation explicitly states: "Treat Server Actions with the same security considerations as public-facing API endpoints, and verify if the user is allowed to perform a mutation."
|
|
15
|
+
|
|
16
|
+
**Incorrect (no authentication check):**
|
|
17
|
+
|
|
18
|
+
```typescript
|
|
19
|
+
'use server'
|
|
20
|
+
|
|
21
|
+
export async function deleteUser(userId: string) {
|
|
22
|
+
// Anyone can call this! No auth check
|
|
23
|
+
await db.user.delete({ where: { id: userId } })
|
|
24
|
+
return { success: true }
|
|
25
|
+
}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
**Correct (authentication inside the action):**
|
|
29
|
+
|
|
30
|
+
```typescript
|
|
31
|
+
'use server'
|
|
32
|
+
|
|
33
|
+
import { verifySession } from '@/lib/auth'
|
|
34
|
+
import { unauthorized } from '@/lib/errors'
|
|
35
|
+
|
|
36
|
+
export async function deleteUser(userId: string) {
|
|
37
|
+
// Always check auth inside the action
|
|
38
|
+
const session = await verifySession()
|
|
39
|
+
|
|
40
|
+
if (!session) {
|
|
41
|
+
throw unauthorized('Must be logged in')
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Check authorization too
|
|
45
|
+
if (session.user.role !== 'admin' && session.user.id !== userId) {
|
|
46
|
+
throw unauthorized('Cannot delete other users')
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
await db.user.delete({ where: { id: userId } })
|
|
50
|
+
return { success: true }
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**With input validation:**
|
|
55
|
+
|
|
56
|
+
```typescript
|
|
57
|
+
'use server'
|
|
58
|
+
|
|
59
|
+
import { verifySession } from '@/lib/auth'
|
|
60
|
+
import { z } from 'zod'
|
|
61
|
+
|
|
62
|
+
const updateProfileSchema = z.object({
|
|
63
|
+
userId: z.string().uuid(),
|
|
64
|
+
name: z.string().min(1).max(100),
|
|
65
|
+
email: z.string().email(),
|
|
66
|
+
})
|
|
67
|
+
|
|
68
|
+
export async function updateProfile(data: unknown) {
|
|
69
|
+
// Validate input first
|
|
70
|
+
const validated = updateProfileSchema.parse(data)
|
|
71
|
+
|
|
72
|
+
// Then authenticate
|
|
73
|
+
const session = await verifySession()
|
|
74
|
+
if (!session) {
|
|
75
|
+
throw new Error('Unauthorized')
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Then authorize
|
|
79
|
+
if (session.user.id !== validated.userId) {
|
|
80
|
+
throw new Error('Can only update own profile')
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Finally perform the mutation
|
|
84
|
+
await db.user.update({
|
|
85
|
+
where: { id: validated.userId },
|
|
86
|
+
data: {
|
|
87
|
+
name: validated.name,
|
|
88
|
+
email: validated.email,
|
|
89
|
+
},
|
|
90
|
+
})
|
|
91
|
+
|
|
92
|
+
return { success: true }
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Reference: [https://nextjs.org/docs/app/guides/authentication](https://nextjs.org/docs/app/guides/authentication)
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Cross-Request LRU Caching
|
|
3
|
+
impact: HIGH
|
|
4
|
+
impactDescription: caches across requests
|
|
5
|
+
tags: server, cache, lru, cross-request
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Cross-Request LRU Caching
|
|
9
|
+
|
|
10
|
+
`React.cache()` only works within one request. For data shared across sequential requests (user clicks button A then button B), use an LRU cache.
|
|
11
|
+
|
|
12
|
+
**Implementation:**
|
|
13
|
+
|
|
14
|
+
```typescript
|
|
15
|
+
import { LRUCache } from 'lru-cache'
|
|
16
|
+
|
|
17
|
+
const cache = new LRUCache<string, any>({
|
|
18
|
+
max: 1000,
|
|
19
|
+
ttl: 5 * 60 * 1000, // 5 minutes
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
export async function getUser(id: string) {
|
|
23
|
+
const cached = cache.get(id)
|
|
24
|
+
if (cached) return cached
|
|
25
|
+
|
|
26
|
+
const user = await db.user.findUnique({ where: { id } })
|
|
27
|
+
cache.set(id, user)
|
|
28
|
+
return user
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Request 1: DB query, result cached
|
|
32
|
+
// Request 2: cache hit, no DB query
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Use when sequential user actions hit multiple endpoints needing the same data within seconds.
|
|
36
|
+
|
|
37
|
+
**With Vercel's [Fluid Compute](https://vercel.com/docs/fluid-compute):** LRU caching is especially effective because multiple concurrent requests can share the same function instance and cache. This means the cache persists across requests without needing external storage like Redis.
|
|
38
|
+
|
|
39
|
+
**In traditional serverless:** Each invocation runs in isolation, so consider Redis for cross-process caching.
|
|
40
|
+
|
|
41
|
+
Reference: [https://github.com/isaacs/node-lru-cache](https://github.com/isaacs/node-lru-cache)
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Per-Request Deduplication with React.cache()
|
|
3
|
+
impact: MEDIUM
|
|
4
|
+
impactDescription: deduplicates within request
|
|
5
|
+
tags: server, cache, react-cache, deduplication
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Per-Request Deduplication with React.cache()
|
|
9
|
+
|
|
10
|
+
Use `React.cache()` for server-side request deduplication. Authentication and database queries benefit most.
|
|
11
|
+
|
|
12
|
+
**Usage:**
|
|
13
|
+
|
|
14
|
+
```typescript
|
|
15
|
+
import { cache } from 'react'
|
|
16
|
+
|
|
17
|
+
export const getCurrentUser = cache(async () => {
|
|
18
|
+
const session = await auth()
|
|
19
|
+
if (!session?.user?.id) return null
|
|
20
|
+
return await db.user.findUnique({
|
|
21
|
+
where: { id: session.user.id },
|
|
22
|
+
})
|
|
23
|
+
})
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Within a single request, multiple calls to `getCurrentUser()` execute the query only once.
|
|
27
|
+
|
|
28
|
+
**Avoid inline objects as arguments:**
|
|
29
|
+
|
|
30
|
+
`React.cache()` uses shallow equality (`Object.is`) to determine cache hits. Inline objects create new references each call, preventing cache hits.
|
|
31
|
+
|
|
32
|
+
**Incorrect (always cache miss):**
|
|
33
|
+
|
|
34
|
+
```typescript
|
|
35
|
+
const getUser = cache(async (params: { uid: number }) => {
|
|
36
|
+
return await db.user.findUnique({ where: { id: params.uid } })
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
// Each call creates new object, never hits cache
|
|
40
|
+
getUser({ uid: 1 })
|
|
41
|
+
getUser({ uid: 1 }) // Cache miss, runs query again
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**Correct (cache hit):**
|
|
45
|
+
|
|
46
|
+
```typescript
|
|
47
|
+
const getUser = cache(async (uid: number) => {
|
|
48
|
+
return await db.user.findUnique({ where: { id: uid } })
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
// Primitive args use value equality
|
|
52
|
+
getUser(1)
|
|
53
|
+
getUser(1) // Cache hit, returns cached result
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
If you must pass objects, pass the same reference:
|
|
57
|
+
|
|
58
|
+
```typescript
|
|
59
|
+
const params = { uid: 1 }
|
|
60
|
+
getUser(params) // Query runs
|
|
61
|
+
getUser(params) // Cache hit (same reference)
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**Next.js-Specific Note:**
|
|
65
|
+
|
|
66
|
+
In Next.js, the `fetch` API is automatically extended with request memoization. Requests with the same URL and options are automatically deduplicated within a single request, so you don't need `React.cache()` for `fetch` calls. However, `React.cache()` is still essential for other async tasks:
|
|
67
|
+
|
|
68
|
+
- Database queries (Prisma, Drizzle, etc.)
|
|
69
|
+
- Heavy computations
|
|
70
|
+
- Authentication checks
|
|
71
|
+
- File system operations
|
|
72
|
+
- Any non-fetch async work
|
|
73
|
+
|
|
74
|
+
Use `React.cache()` to deduplicate these operations across your component tree.
|
|
75
|
+
|
|
76
|
+
Reference: [React.cache documentation](https://react.dev/reference/react/cache)
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Avoid Duplicate Serialization in RSC Props
|
|
3
|
+
impact: LOW
|
|
4
|
+
impactDescription: reduces network payload by avoiding duplicate serialization
|
|
5
|
+
tags: server, rsc, serialization, props, client-components
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Avoid Duplicate Serialization in RSC Props
|
|
9
|
+
|
|
10
|
+
**Impact: LOW (reduces network payload by avoiding duplicate serialization)**
|
|
11
|
+
|
|
12
|
+
RSC→client serialization deduplicates by object reference, not value. Same reference = serialized once; new reference = serialized again. Do transformations (`.toSorted()`, `.filter()`, `.map()`) in client, not server.
|
|
13
|
+
|
|
14
|
+
**Incorrect (duplicates array):**
|
|
15
|
+
|
|
16
|
+
```tsx
|
|
17
|
+
// RSC: sends 6 strings (2 arrays × 3 items)
|
|
18
|
+
<ClientList usernames={usernames} usernamesOrdered={usernames.toSorted()} />
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**Correct (sends 3 strings):**
|
|
22
|
+
|
|
23
|
+
```tsx
|
|
24
|
+
// RSC: send once
|
|
25
|
+
;<ClientList usernames={usernames} />
|
|
26
|
+
|
|
27
|
+
// Client: transform there
|
|
28
|
+
;('use client')
|
|
29
|
+
const sorted = useMemo(() => [...usernames].sort(), [usernames])
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**Nested deduplication behavior:**
|
|
33
|
+
|
|
34
|
+
Deduplication works recursively. Impact varies by data type:
|
|
35
|
+
|
|
36
|
+
- `string[]`, `number[]`, `boolean[]`: **HIGH impact** - array + all primitives fully duplicated
|
|
37
|
+
- `object[]`: **LOW impact** - array duplicated, but nested objects deduplicated by reference
|
|
38
|
+
|
|
39
|
+
```tsx
|
|
40
|
+
// string[] - duplicates everything
|
|
41
|
+
usernames={['a','b']} sorted={usernames.toSorted()} // sends 4 strings
|
|
42
|
+
|
|
43
|
+
// object[] - duplicates array structure only
|
|
44
|
+
users={[{id:1},{id:2}]} sorted={users.toSorted()} // sends 2 arrays + 2 unique objects (not 4)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**Operations breaking deduplication (create new references):**
|
|
48
|
+
|
|
49
|
+
- Arrays: `.toSorted()`, `.filter()`, `.map()`, `.slice()`, `[...arr]`
|
|
50
|
+
- Objects: `{...obj}`, `Object.assign()`, `structuredClone()`, `JSON.parse(JSON.stringify())`
|
|
51
|
+
|
|
52
|
+
**More examples:**
|
|
53
|
+
|
|
54
|
+
```tsx
|
|
55
|
+
// ❌ Bad
|
|
56
|
+
<C users={users} active={users.filter(u => u.active)} />
|
|
57
|
+
<C product={product} productName={product.name} />
|
|
58
|
+
|
|
59
|
+
// ✅ Good
|
|
60
|
+
<C users={users} />
|
|
61
|
+
<C product={product} />
|
|
62
|
+
// Do filtering/destructuring in client
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Exception:** Pass derived data when transformation is expensive or client doesn't need original.
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Parallel Data Fetching with Component Composition
|
|
3
|
+
impact: CRITICAL
|
|
4
|
+
impactDescription: eliminates server-side waterfalls
|
|
5
|
+
tags: server, rsc, parallel-fetching, composition
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Parallel Data Fetching with Component Composition
|
|
9
|
+
|
|
10
|
+
React Server Components execute sequentially within a tree. Restructure with composition to parallelize data fetching.
|
|
11
|
+
|
|
12
|
+
**Incorrect (Sidebar waits for Page's fetch to complete):**
|
|
13
|
+
|
|
14
|
+
```tsx
|
|
15
|
+
export default async function Page() {
|
|
16
|
+
const header = await fetchHeader()
|
|
17
|
+
return (
|
|
18
|
+
<div>
|
|
19
|
+
<div>{header}</div>
|
|
20
|
+
<Sidebar />
|
|
21
|
+
</div>
|
|
22
|
+
)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
async function Sidebar() {
|
|
26
|
+
const items = await fetchSidebarItems()
|
|
27
|
+
return <nav>{items.map(renderItem)}</nav>
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
**Correct (both fetch simultaneously):**
|
|
32
|
+
|
|
33
|
+
```tsx
|
|
34
|
+
async function Header() {
|
|
35
|
+
const data = await fetchHeader()
|
|
36
|
+
return <div>{data}</div>
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
async function Sidebar() {
|
|
40
|
+
const items = await fetchSidebarItems()
|
|
41
|
+
return <nav>{items.map(renderItem)}</nav>
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export default function Page() {
|
|
45
|
+
return (
|
|
46
|
+
<div>
|
|
47
|
+
<Header />
|
|
48
|
+
<Sidebar />
|
|
49
|
+
</div>
|
|
50
|
+
)
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**Alternative with children prop:**
|
|
55
|
+
|
|
56
|
+
```tsx
|
|
57
|
+
async function Header() {
|
|
58
|
+
const data = await fetchHeader()
|
|
59
|
+
return <div>{data}</div>
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
async function Sidebar() {
|
|
63
|
+
const items = await fetchSidebarItems()
|
|
64
|
+
return <nav>{items.map(renderItem)}</nav>
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function Layout({ children }: { children: ReactNode }) {
|
|
68
|
+
return (
|
|
69
|
+
<div>
|
|
70
|
+
<Header />
|
|
71
|
+
{children}
|
|
72
|
+
</div>
|
|
73
|
+
)
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export default function Page() {
|
|
77
|
+
return (
|
|
78
|
+
<Layout>
|
|
79
|
+
<Sidebar />
|
|
80
|
+
</Layout>
|
|
81
|
+
)
|
|
82
|
+
}
|
|
83
|
+
```
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Minimize Serialization at RSC Boundaries
|
|
3
|
+
impact: HIGH
|
|
4
|
+
impactDescription: reduces data transfer size
|
|
5
|
+
tags: server, rsc, serialization, props
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Minimize Serialization at RSC Boundaries
|
|
9
|
+
|
|
10
|
+
The React Server/Client boundary serializes all object properties into strings and embeds them in the HTML response and subsequent RSC requests. This serialized data directly impacts page weight and load time, so **size matters a lot**. Only pass fields that the client actually uses.
|
|
11
|
+
|
|
12
|
+
**Incorrect (serializes all 50 fields):**
|
|
13
|
+
|
|
14
|
+
```tsx
|
|
15
|
+
async function Page() {
|
|
16
|
+
const user = await fetchUser() // 50 fields
|
|
17
|
+
return <Profile user={user} />
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
;('use client')
|
|
21
|
+
function Profile({ user }: { user: User }) {
|
|
22
|
+
return <div>{user.name}</div> // uses 1 field
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**Correct (serializes only 1 field):**
|
|
27
|
+
|
|
28
|
+
```tsx
|
|
29
|
+
async function Page() {
|
|
30
|
+
const user = await fetchUser()
|
|
31
|
+
return <Profile name={user.name} />
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
;('use client')
|
|
35
|
+
function Profile({ name }: { name: string }) {
|
|
36
|
+
return <div>{name}</div>
|
|
37
|
+
}
|
|
38
|
+
```
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: skill
|
|
3
|
+
slug: verify
|
|
4
|
+
title: Verify
|
|
5
|
+
status: active
|
|
6
|
+
scope: repo
|
|
7
|
+
applies_to: [agents]
|
|
8
|
+
related: []
|
|
9
|
+
created: '2026-05-07'
|
|
10
|
+
last_reviewed: '2026-05-22'
|
|
11
|
+
name: verify
|
|
12
|
+
description: Post-implementation quality gate that verifies work is actually done, cleans up legacy/backward-compat/dead-code garbage left behind, and refreshes affected docs. Use after implementing a feature or fix, before claiming done, or when finalizing a blueprint. Triggers on `/verify <target>`, `verify this work`, `is this really done?`, or when a human asks for post-implementation review.
|
|
13
|
+
argument-hint: '<target> [--full] where target is: package|file|plan-slug|all'
|
|
14
|
+
hooks:
|
|
15
|
+
Stop:
|
|
16
|
+
- command: wp audit agents
|
|
17
|
+
timeout: 20
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Verify
|
|
21
|
+
|
|
22
|
+
Post-implementation quality gate. Run after implementation exists, before claiming `done`.
|
|
23
|
+
|
|
24
|
+
`/fix` owns reproduction, root-cause analysis, and the minimal repair. `/verify` owns the broader question: **is this work actually complete, integrated, and free of stale garbage?**
|
|
25
|
+
|
|
26
|
+
## Iron law — evidence before claims
|
|
27
|
+
|
|
28
|
+
No completion claim without fresh verification evidence.
|
|
29
|
+
|
|
30
|
+
Before saying `done`, `fixed`, `passes`, or `clean`:
|
|
31
|
+
|
|
32
|
+
1. Identify the command or log that proves the claim.
|
|
33
|
+
2. Run it now, or cite the fresh log from the just-completed run.
|
|
34
|
+
3. Read the exit code and summary — do not infer from partial output.
|
|
35
|
+
4. State the actual result, including the log path when the repo records one.
|
|
36
|
+
5. If another agent made the change, inspect the diff yourself before repeating the claim.
|
|
37
|
+
|
|
38
|
+
Not sufficient: "should pass", "looks correct", lint-only evidence for runtime claims, or another agent's success report without independent verification.
|
|
39
|
+
|
|
40
|
+
## Usage
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
/verify <target>
|
|
44
|
+
/verify <target> --full
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
`<target>` is a file path, package name, blueprint slug, or `all`.
|
|
48
|
+
|
|
49
|
+
Follow the repo's current routing and command surface:
|
|
50
|
+
|
|
51
|
+
- use repo-owned quality wrappers first
|
|
52
|
+
- use injected quality-tool routing when present
|
|
53
|
+
- use context-mode / large-output tooling when the repo instructs it
|
|
54
|
+
- reuse fresh logs instead of re-running broad commands just to inspect output
|
|
55
|
+
|
|
56
|
+
## Phase 0 — Scope and evidence map
|
|
57
|
+
|
|
58
|
+
1. Identify target type (file / package / blueprint slug / all).
|
|
59
|
+
2. Map each claim you plan to make to the exact command or log that proves it.
|
|
60
|
+
3. If the target is a blueprint slug, run the repo's blueprint show/audit surface and record the acceptance boxes that still need proof.
|
|
61
|
+
|
|
62
|
+
## Phase 1 — Governance gates
|
|
63
|
+
|
|
64
|
+
Run only the gates that apply to the diff:
|
|
65
|
+
|
|
66
|
+
- repo SSOT / schema / config changes → the repo's dedicated check
|
|
67
|
+
- docs or markdown changes → the repo's docs / markdown validation surface
|
|
68
|
+
- blueprint target → the repo's blueprint audit surface
|
|
69
|
+
- agent-surface / catalog changes → the repo's agent or catalog audit surface
|
|
70
|
+
|
|
71
|
+
Hard stop on any failure.
|
|
72
|
+
|
|
73
|
+
## Phase 2 — Surface verification
|
|
74
|
+
|
|
75
|
+
Run the narrowest checks that prove the touched behavior:
|
|
76
|
+
|
|
77
|
+
- targeted lint
|
|
78
|
+
- targeted typecheck
|
|
79
|
+
- targeted tests
|
|
80
|
+
- build / e2e / package checks only when the change requires them
|
|
81
|
+
|
|
82
|
+
Rules:
|
|
83
|
+
|
|
84
|
+
- Prefer repo wrappers over raw underlying tools.
|
|
85
|
+
- Reuse fresh logs if the runner auto-saves them.
|
|
86
|
+
- Never claim broader correctness than the commands actually proved.
|
|
87
|
+
- If the repo documents a "full QA" bookend, reserve it for the final broad pass rather than every iteration.
|
|
88
|
+
|
|
89
|
+
## Phase 3 — Cross-surface impact scan
|
|
90
|
+
|
|
91
|
+
Ask:
|
|
92
|
+
|
|
93
|
+
- Did the change alter a public/shared export, type, config shape, command, or generated surface?
|
|
94
|
+
- Do consumers, mocks, fixtures, or docs still reference the old shape?
|
|
95
|
+
- Does another package, blueprint, or agent surface need to be updated in the same change?
|
|
96
|
+
|
|
97
|
+
Hard stop if a shared contract changed and consumers were not updated.
|
|
98
|
+
|
|
99
|
+
## Phase 4 — Test quality and behavioral audit
|
|
100
|
+
|
|
101
|
+
The passing test suite is necessary, not sufficient.
|
|
102
|
+
|
|
103
|
+
Check that:
|
|
104
|
+
|
|
105
|
+
- the new or changed tests would fail against the old behavior
|
|
106
|
+
- mocks stay at real external boundaries
|
|
107
|
+
- assertions prove the intended behavior rather than incidental implementation details
|
|
108
|
+
- mixed/partial/error-path coverage exists where the feature demands it
|
|
109
|
+
- UX or operator-facing flows include graceful-degradation coverage when applicable
|
|
110
|
+
|
|
111
|
+
If the repo has a testing-philosophy or E2E audit surface, run it when the change touches that layer.
|
|
112
|
+
|
|
113
|
+
## Phase 5 — Complexity, compatibility, and dead-code sweep
|
|
114
|
+
|
|
115
|
+
Before claiming done:
|
|
116
|
+
|
|
117
|
+
- remove stale compat aliases and "temporary" branches introduced by the change
|
|
118
|
+
- verify no suppressions were added
|
|
119
|
+
- verify no production `any` slipped in except an explicitly allowed repo test idiom
|
|
120
|
+
- justify every new exported/helper surface with a real consumer or test
|
|
121
|
+
- run the repo's dead-code / dependency checks when the change broadened public surface or added new files
|
|
122
|
+
|
|
123
|
+
This phase exists to catch the garbage that often slips in beside otherwise-correct work.
|
|
124
|
+
|
|
125
|
+
## Phase 6 — Final completion statement
|
|
126
|
+
|
|
127
|
+
Report:
|
|
128
|
+
|
|
129
|
+
- what was verified
|
|
130
|
+
- which commands/logs prove it
|
|
131
|
+
- what remains intentionally out of scope
|
|
132
|
+
|
|
133
|
+
If any required check is missing, the correct result is **not done yet**, not a softer claim.
|