@wazir-dev/cli 1.0.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/AGENTS.md +111 -0
- package/CHANGELOG.md +14 -0
- package/CONTRIBUTING.md +101 -0
- package/LICENSE +21 -0
- package/README.md +314 -0
- package/assets/composition-engine.mmd +34 -0
- package/assets/demo-script.sh +17 -0
- package/assets/logo-dark.svg +14 -0
- package/assets/logo.svg +14 -0
- package/assets/pipeline.mmd +39 -0
- package/assets/record-demo.sh +51 -0
- package/docs/README.md +51 -0
- package/docs/adapters/context-mode.md +60 -0
- package/docs/concepts/architecture.md +87 -0
- package/docs/concepts/artifact-model.md +60 -0
- package/docs/concepts/composition-engine.md +36 -0
- package/docs/concepts/indexing-and-recall.md +160 -0
- package/docs/concepts/observability.md +41 -0
- package/docs/concepts/roles-and-workflows.md +59 -0
- package/docs/concepts/terminology-policy.md +27 -0
- package/docs/getting-started/01-installation.md +78 -0
- package/docs/getting-started/02-first-run.md +102 -0
- package/docs/getting-started/03-adding-to-project.md +15 -0
- package/docs/getting-started/04-host-setup.md +15 -0
- package/docs/guides/ci-integration.md +15 -0
- package/docs/guides/creating-skills.md +15 -0
- package/docs/guides/expertise-module-authoring.md +15 -0
- package/docs/guides/hook-development.md +15 -0
- package/docs/guides/memory-and-learnings.md +34 -0
- package/docs/guides/multi-host-export.md +15 -0
- package/docs/guides/troubleshooting.md +101 -0
- package/docs/guides/writing-custom-roles.md +15 -0
- package/docs/plans/2026-03-15-cli-pipeline-integration-design.md +592 -0
- package/docs/plans/2026-03-15-cli-pipeline-integration-plan.md +598 -0
- package/docs/plans/2026-03-15-docs-enforcement-plan.md +238 -0
- package/docs/readmes/INDEX.md +99 -0
- package/docs/readmes/features/expertise/README.md +171 -0
- package/docs/readmes/features/exports/README.md +222 -0
- package/docs/readmes/features/hooks/README.md +103 -0
- package/docs/readmes/features/hooks/loop-cap-guard.md +133 -0
- package/docs/readmes/features/hooks/post-tool-capture.md +121 -0
- package/docs/readmes/features/hooks/post-tool-lint.md +130 -0
- package/docs/readmes/features/hooks/pre-compact-summary.md +122 -0
- package/docs/readmes/features/hooks/pre-tool-capture-route.md +100 -0
- package/docs/readmes/features/hooks/protected-path-write-guard.md +128 -0
- package/docs/readmes/features/hooks/session-start.md +119 -0
- package/docs/readmes/features/hooks/stop-handoff-harvest.md +125 -0
- package/docs/readmes/features/roles/README.md +157 -0
- package/docs/readmes/features/roles/clarifier.md +152 -0
- package/docs/readmes/features/roles/content-author.md +190 -0
- package/docs/readmes/features/roles/designer.md +193 -0
- package/docs/readmes/features/roles/executor.md +184 -0
- package/docs/readmes/features/roles/learner.md +210 -0
- package/docs/readmes/features/roles/planner.md +182 -0
- package/docs/readmes/features/roles/researcher.md +164 -0
- package/docs/readmes/features/roles/reviewer.md +184 -0
- package/docs/readmes/features/roles/specifier.md +162 -0
- package/docs/readmes/features/roles/verifier.md +215 -0
- package/docs/readmes/features/schemas/README.md +178 -0
- package/docs/readmes/features/skills/README.md +63 -0
- package/docs/readmes/features/skills/brainstorming.md +96 -0
- package/docs/readmes/features/skills/debugging.md +148 -0
- package/docs/readmes/features/skills/design.md +120 -0
- package/docs/readmes/features/skills/prepare-next.md +109 -0
- package/docs/readmes/features/skills/run-audit.md +159 -0
- package/docs/readmes/features/skills/scan-project.md +109 -0
- package/docs/readmes/features/skills/self-audit.md +176 -0
- package/docs/readmes/features/skills/tdd.md +137 -0
- package/docs/readmes/features/skills/using-skills.md +92 -0
- package/docs/readmes/features/skills/verification.md +120 -0
- package/docs/readmes/features/skills/writing-plans.md +104 -0
- package/docs/readmes/features/tooling/README.md +320 -0
- package/docs/readmes/features/workflows/README.md +186 -0
- package/docs/readmes/features/workflows/author.md +181 -0
- package/docs/readmes/features/workflows/clarify.md +154 -0
- package/docs/readmes/features/workflows/design-review.md +171 -0
- package/docs/readmes/features/workflows/design.md +169 -0
- package/docs/readmes/features/workflows/discover.md +162 -0
- package/docs/readmes/features/workflows/execute.md +173 -0
- package/docs/readmes/features/workflows/learn.md +167 -0
- package/docs/readmes/features/workflows/plan-review.md +165 -0
- package/docs/readmes/features/workflows/plan.md +170 -0
- package/docs/readmes/features/workflows/prepare-next.md +167 -0
- package/docs/readmes/features/workflows/review.md +169 -0
- package/docs/readmes/features/workflows/run-audit.md +191 -0
- package/docs/readmes/features/workflows/spec-challenge.md +159 -0
- package/docs/readmes/features/workflows/specify.md +160 -0
- package/docs/readmes/features/workflows/verify.md +177 -0
- package/docs/readmes/packages/README.md +50 -0
- package/docs/readmes/packages/ajv.md +117 -0
- package/docs/readmes/packages/context-mode.md +118 -0
- package/docs/readmes/packages/gray-matter.md +116 -0
- package/docs/readmes/packages/node-test.md +137 -0
- package/docs/readmes/packages/yaml.md +112 -0
- package/docs/reference/configuration-reference.md +159 -0
- package/docs/reference/expertise-index.md +52 -0
- package/docs/reference/git-flow.md +43 -0
- package/docs/reference/hooks.md +87 -0
- package/docs/reference/host-exports.md +50 -0
- package/docs/reference/launch-checklist.md +172 -0
- package/docs/reference/marketplace-listings.md +76 -0
- package/docs/reference/release-process.md +34 -0
- package/docs/reference/roles-reference.md +77 -0
- package/docs/reference/skills.md +33 -0
- package/docs/reference/templates.md +29 -0
- package/docs/reference/tooling-cli.md +94 -0
- package/docs/truth-claims.yaml +222 -0
- package/expertise/PROGRESS.md +63 -0
- package/expertise/README.md +18 -0
- package/expertise/antipatterns/PROGRESS.md +56 -0
- package/expertise/antipatterns/backend/api-design-antipatterns.md +1271 -0
- package/expertise/antipatterns/backend/auth-antipatterns.md +1195 -0
- package/expertise/antipatterns/backend/caching-antipatterns.md +622 -0
- package/expertise/antipatterns/backend/database-antipatterns.md +1038 -0
- package/expertise/antipatterns/backend/index.md +24 -0
- package/expertise/antipatterns/backend/microservices-antipatterns.md +850 -0
- package/expertise/antipatterns/code/architecture-antipatterns.md +919 -0
- package/expertise/antipatterns/code/async-antipatterns.md +622 -0
- package/expertise/antipatterns/code/code-smells.md +1186 -0
- package/expertise/antipatterns/code/dependency-antipatterns.md +1209 -0
- package/expertise/antipatterns/code/error-handling-antipatterns.md +1360 -0
- package/expertise/antipatterns/code/index.md +27 -0
- package/expertise/antipatterns/code/naming-and-abstraction.md +1118 -0
- package/expertise/antipatterns/code/state-management-antipatterns.md +1076 -0
- package/expertise/antipatterns/code/testing-antipatterns.md +1053 -0
- package/expertise/antipatterns/design/accessibility-antipatterns.md +1136 -0
- package/expertise/antipatterns/design/dark-patterns.md +1121 -0
- package/expertise/antipatterns/design/index.md +22 -0
- package/expertise/antipatterns/design/ui-antipatterns.md +1202 -0
- package/expertise/antipatterns/design/ux-antipatterns.md +680 -0
- package/expertise/antipatterns/frontend/css-layout-antipatterns.md +691 -0
- package/expertise/antipatterns/frontend/flutter-antipatterns.md +1827 -0
- package/expertise/antipatterns/frontend/index.md +23 -0
- package/expertise/antipatterns/frontend/mobile-antipatterns.md +573 -0
- package/expertise/antipatterns/frontend/react-antipatterns.md +1128 -0
- package/expertise/antipatterns/frontend/spa-antipatterns.md +1235 -0
- package/expertise/antipatterns/index.md +31 -0
- package/expertise/antipatterns/performance/index.md +20 -0
- package/expertise/antipatterns/performance/performance-antipatterns.md +1013 -0
- package/expertise/antipatterns/performance/premature-optimization.md +623 -0
- package/expertise/antipatterns/performance/scaling-antipatterns.md +785 -0
- package/expertise/antipatterns/process/ai-coding-antipatterns.md +853 -0
- package/expertise/antipatterns/process/code-review-antipatterns.md +656 -0
- package/expertise/antipatterns/process/deployment-antipatterns.md +920 -0
- package/expertise/antipatterns/process/index.md +23 -0
- package/expertise/antipatterns/process/technical-debt-antipatterns.md +647 -0
- package/expertise/antipatterns/security/index.md +20 -0
- package/expertise/antipatterns/security/secrets-antipatterns.md +849 -0
- package/expertise/antipatterns/security/security-theater.md +843 -0
- package/expertise/antipatterns/security/vulnerability-patterns.md +801 -0
- package/expertise/architecture/PROGRESS.md +70 -0
- package/expertise/architecture/data/caching-architecture.md +671 -0
- package/expertise/architecture/data/data-consistency.md +574 -0
- package/expertise/architecture/data/data-modeling.md +536 -0
- package/expertise/architecture/data/event-streams-and-queues.md +634 -0
- package/expertise/architecture/data/index.md +25 -0
- package/expertise/architecture/data/search-architecture.md +663 -0
- package/expertise/architecture/data/sql-vs-nosql.md +708 -0
- package/expertise/architecture/decisions/architecture-decision-records.md +640 -0
- package/expertise/architecture/decisions/build-vs-buy.md +616 -0
- package/expertise/architecture/decisions/index.md +23 -0
- package/expertise/architecture/decisions/monolith-to-microservices.md +790 -0
- package/expertise/architecture/decisions/technology-selection.md +616 -0
- package/expertise/architecture/distributed/cap-theorem-and-tradeoffs.md +800 -0
- package/expertise/architecture/distributed/circuit-breaker-bulkhead.md +741 -0
- package/expertise/architecture/distributed/consensus-and-coordination.md +796 -0
- package/expertise/architecture/distributed/distributed-systems-fundamentals.md +564 -0
- package/expertise/architecture/distributed/idempotency-and-retry.md +796 -0
- package/expertise/architecture/distributed/index.md +25 -0
- package/expertise/architecture/distributed/saga-pattern.md +797 -0
- package/expertise/architecture/foundations/architectural-thinking.md +460 -0
- package/expertise/architecture/foundations/coupling-and-cohesion.md +770 -0
- package/expertise/architecture/foundations/design-principles-solid.md +649 -0
- package/expertise/architecture/foundations/domain-driven-design.md +719 -0
- package/expertise/architecture/foundations/index.md +25 -0
- package/expertise/architecture/foundations/separation-of-concerns.md +472 -0
- package/expertise/architecture/foundations/twelve-factor-app.md +797 -0
- package/expertise/architecture/index.md +34 -0
- package/expertise/architecture/integration/api-design-graphql.md +638 -0
- package/expertise/architecture/integration/api-design-grpc.md +804 -0
- package/expertise/architecture/integration/api-design-rest.md +892 -0
- package/expertise/architecture/integration/index.md +25 -0
- package/expertise/architecture/integration/third-party-integration.md +795 -0
- package/expertise/architecture/integration/webhooks-and-callbacks.md +1152 -0
- package/expertise/architecture/integration/websockets-realtime.md +791 -0
- package/expertise/architecture/mobile-architecture/index.md +22 -0
- package/expertise/architecture/mobile-architecture/mobile-app-architecture.md +780 -0
- package/expertise/architecture/mobile-architecture/mobile-backend-for-frontend.md +670 -0
- package/expertise/architecture/mobile-architecture/offline-first.md +719 -0
- package/expertise/architecture/mobile-architecture/push-and-sync.md +782 -0
- package/expertise/architecture/patterns/cqrs-event-sourcing.md +717 -0
- package/expertise/architecture/patterns/event-driven.md +797 -0
- package/expertise/architecture/patterns/hexagonal-clean-architecture.md +870 -0
- package/expertise/architecture/patterns/index.md +27 -0
- package/expertise/architecture/patterns/layered-architecture.md +736 -0
- package/expertise/architecture/patterns/microservices.md +753 -0
- package/expertise/architecture/patterns/modular-monolith.md +692 -0
- package/expertise/architecture/patterns/monolith.md +626 -0
- package/expertise/architecture/patterns/plugin-architecture.md +735 -0
- package/expertise/architecture/patterns/serverless.md +780 -0
- package/expertise/architecture/scaling/database-scaling.md +615 -0
- package/expertise/architecture/scaling/feature-flags-and-rollouts.md +757 -0
- package/expertise/architecture/scaling/horizontal-vs-vertical.md +606 -0
- package/expertise/architecture/scaling/index.md +24 -0
- package/expertise/architecture/scaling/multi-tenancy.md +800 -0
- package/expertise/architecture/scaling/stateless-design.md +787 -0
- package/expertise/backend/embedded-firmware.md +625 -0
- package/expertise/backend/go.md +853 -0
- package/expertise/backend/index.md +24 -0
- package/expertise/backend/java-spring.md +448 -0
- package/expertise/backend/node-typescript.md +625 -0
- package/expertise/backend/python-fastapi.md +724 -0
- package/expertise/backend/rust.md +458 -0
- package/expertise/backend/solidity.md +711 -0
- package/expertise/composition-map.yaml +443 -0
- package/expertise/content/foundations/content-modeling.md +395 -0
- package/expertise/content/foundations/editorial-standards.md +449 -0
- package/expertise/content/foundations/index.md +24 -0
- package/expertise/content/foundations/microcopy.md +455 -0
- package/expertise/content/foundations/terminology-governance.md +509 -0
- package/expertise/content/index.md +34 -0
- package/expertise/content/patterns/accessibility-copy.md +518 -0
- package/expertise/content/patterns/index.md +24 -0
- package/expertise/content/patterns/notification-content.md +433 -0
- package/expertise/content/patterns/sample-content.md +486 -0
- package/expertise/content/patterns/state-copy.md +439 -0
- package/expertise/design/PROGRESS.md +58 -0
- package/expertise/design/disciplines/dark-mode-theming.md +577 -0
- package/expertise/design/disciplines/design-systems.md +595 -0
- package/expertise/design/disciplines/index.md +25 -0
- package/expertise/design/disciplines/information-architecture.md +800 -0
- package/expertise/design/disciplines/interaction-design.md +788 -0
- package/expertise/design/disciplines/responsive-design.md +552 -0
- package/expertise/design/disciplines/usability-testing.md +516 -0
- package/expertise/design/disciplines/user-research.md +792 -0
- package/expertise/design/foundations/accessibility-design.md +796 -0
- package/expertise/design/foundations/color-theory.md +797 -0
- package/expertise/design/foundations/iconography.md +795 -0
- package/expertise/design/foundations/index.md +26 -0
- package/expertise/design/foundations/motion-and-animation.md +653 -0
- package/expertise/design/foundations/rtl-design.md +585 -0
- package/expertise/design/foundations/spacing-and-layout.md +607 -0
- package/expertise/design/foundations/typography.md +800 -0
- package/expertise/design/foundations/visual-hierarchy.md +761 -0
- package/expertise/design/index.md +32 -0
- package/expertise/design/patterns/authentication-flows.md +474 -0
- package/expertise/design/patterns/content-consumption.md +789 -0
- package/expertise/design/patterns/data-display.md +618 -0
- package/expertise/design/patterns/e-commerce.md +1494 -0
- package/expertise/design/patterns/feedback-and-states.md +642 -0
- package/expertise/design/patterns/forms-and-input.md +819 -0
- package/expertise/design/patterns/gamification.md +801 -0
- package/expertise/design/patterns/index.md +31 -0
- package/expertise/design/patterns/microinteractions.md +449 -0
- package/expertise/design/patterns/navigation.md +800 -0
- package/expertise/design/patterns/notifications.md +705 -0
- package/expertise/design/patterns/onboarding.md +700 -0
- package/expertise/design/patterns/search-and-filter.md +601 -0
- package/expertise/design/patterns/settings-and-preferences.md +768 -0
- package/expertise/design/patterns/social-and-community.md +748 -0
- package/expertise/design/platforms/desktop-native.md +612 -0
- package/expertise/design/platforms/index.md +25 -0
- package/expertise/design/platforms/mobile-android.md +825 -0
- package/expertise/design/platforms/mobile-cross-platform.md +983 -0
- package/expertise/design/platforms/mobile-ios.md +699 -0
- package/expertise/design/platforms/tablet.md +794 -0
- package/expertise/design/platforms/web-dashboard.md +790 -0
- package/expertise/design/platforms/web-responsive.md +550 -0
- package/expertise/design/psychology/behavioral-nudges.md +449 -0
- package/expertise/design/psychology/cognitive-load.md +1191 -0
- package/expertise/design/psychology/error-psychology.md +778 -0
- package/expertise/design/psychology/index.md +22 -0
- package/expertise/design/psychology/persuasive-design.md +736 -0
- package/expertise/design/psychology/user-mental-models.md +623 -0
- package/expertise/design/tooling/open-pencil.md +266 -0
- package/expertise/frontend/angular.md +1073 -0
- package/expertise/frontend/desktop-electron.md +546 -0
- package/expertise/frontend/flutter.md +782 -0
- package/expertise/frontend/index.md +27 -0
- package/expertise/frontend/native-android.md +409 -0
- package/expertise/frontend/native-ios.md +490 -0
- package/expertise/frontend/react-native.md +1160 -0
- package/expertise/frontend/react.md +808 -0
- package/expertise/frontend/vue.md +1089 -0
- package/expertise/humanize/domain-rules-code.md +79 -0
- package/expertise/humanize/domain-rules-content.md +67 -0
- package/expertise/humanize/domain-rules-technical-docs.md +56 -0
- package/expertise/humanize/index.md +35 -0
- package/expertise/humanize/self-audit-checklist.md +87 -0
- package/expertise/humanize/sentence-patterns.md +218 -0
- package/expertise/humanize/vocabulary-blacklist.md +105 -0
- package/expertise/i18n/PROGRESS.md +65 -0
- package/expertise/i18n/advanced/accessibility-and-i18n.md +28 -0
- package/expertise/i18n/advanced/bidirectional-text-algorithm.md +38 -0
- package/expertise/i18n/advanced/complex-scripts.md +30 -0
- package/expertise/i18n/advanced/performance-and-i18n.md +27 -0
- package/expertise/i18n/advanced/testing-i18n.md +28 -0
- package/expertise/i18n/content/content-adaptation.md +23 -0
- package/expertise/i18n/content/locale-specific-formatting.md +23 -0
- package/expertise/i18n/content/machine-translation-integration.md +28 -0
- package/expertise/i18n/content/translation-management.md +29 -0
- package/expertise/i18n/foundations/date-time-calendars.md +67 -0
- package/expertise/i18n/foundations/i18n-architecture.md +272 -0
- package/expertise/i18n/foundations/locale-and-language-tags.md +79 -0
- package/expertise/i18n/foundations/numbers-currency-units.md +61 -0
- package/expertise/i18n/foundations/pluralization-and-gender.md +109 -0
- package/expertise/i18n/foundations/string-externalization.md +236 -0
- package/expertise/i18n/foundations/text-direction-bidi.md +241 -0
- package/expertise/i18n/foundations/unicode-and-encoding.md +86 -0
- package/expertise/i18n/index.md +38 -0
- package/expertise/i18n/platform/backend-i18n.md +31 -0
- package/expertise/i18n/platform/flutter-i18n.md +148 -0
- package/expertise/i18n/platform/native-android-i18n.md +36 -0
- package/expertise/i18n/platform/native-ios-i18n.md +36 -0
- package/expertise/i18n/platform/react-i18n.md +103 -0
- package/expertise/i18n/platform/web-css-i18n.md +81 -0
- package/expertise/i18n/rtl/arabic-specific.md +175 -0
- package/expertise/i18n/rtl/hebrew-specific.md +149 -0
- package/expertise/i18n/rtl/rtl-animations-and-transitions.md +111 -0
- package/expertise/i18n/rtl/rtl-forms-and-input.md +161 -0
- package/expertise/i18n/rtl/rtl-fundamentals.md +211 -0
- package/expertise/i18n/rtl/rtl-icons-and-images.md +181 -0
- package/expertise/i18n/rtl/rtl-layout-mirroring.md +252 -0
- package/expertise/i18n/rtl/rtl-navigation-and-gestures.md +107 -0
- package/expertise/i18n/rtl/rtl-testing-and-qa.md +147 -0
- package/expertise/i18n/rtl/rtl-typography.md +160 -0
- package/expertise/index.md +113 -0
- package/expertise/index.yaml +216 -0
- package/expertise/infrastructure/cloud-aws.md +597 -0
- package/expertise/infrastructure/cloud-gcp.md +599 -0
- package/expertise/infrastructure/cybersecurity.md +816 -0
- package/expertise/infrastructure/database-mongodb.md +447 -0
- package/expertise/infrastructure/database-postgres.md +400 -0
- package/expertise/infrastructure/devops-cicd.md +787 -0
- package/expertise/infrastructure/index.md +27 -0
- package/expertise/performance/PROGRESS.md +50 -0
- package/expertise/performance/backend/api-latency.md +1204 -0
- package/expertise/performance/backend/background-jobs.md +506 -0
- package/expertise/performance/backend/connection-pooling.md +1209 -0
- package/expertise/performance/backend/database-query-optimization.md +515 -0
- package/expertise/performance/backend/index.md +23 -0
- package/expertise/performance/backend/rate-limiting-and-throttling.md +971 -0
- package/expertise/performance/foundations/algorithmic-complexity.md +954 -0
- package/expertise/performance/foundations/caching-strategies.md +489 -0
- package/expertise/performance/foundations/concurrency-and-parallelism.md +847 -0
- package/expertise/performance/foundations/index.md +24 -0
- package/expertise/performance/foundations/measuring-and-profiling.md +440 -0
- package/expertise/performance/foundations/memory-management.md +964 -0
- package/expertise/performance/foundations/performance-budgets.md +1314 -0
- package/expertise/performance/index.md +31 -0
- package/expertise/performance/infrastructure/auto-scaling.md +1059 -0
- package/expertise/performance/infrastructure/cdn-and-edge.md +1081 -0
- package/expertise/performance/infrastructure/index.md +22 -0
- package/expertise/performance/infrastructure/load-balancing.md +1081 -0
- package/expertise/performance/infrastructure/observability.md +1079 -0
- package/expertise/performance/mobile/index.md +23 -0
- package/expertise/performance/mobile/mobile-animations.md +544 -0
- package/expertise/performance/mobile/mobile-memory-battery.md +416 -0
- package/expertise/performance/mobile/mobile-network.md +452 -0
- package/expertise/performance/mobile/mobile-rendering.md +599 -0
- package/expertise/performance/mobile/mobile-startup-time.md +505 -0
- package/expertise/performance/platform-specific/flutter-performance.md +647 -0
- package/expertise/performance/platform-specific/index.md +22 -0
- package/expertise/performance/platform-specific/node-performance.md +1307 -0
- package/expertise/performance/platform-specific/postgres-performance.md +1366 -0
- package/expertise/performance/platform-specific/react-performance.md +1403 -0
- package/expertise/performance/web/bundle-optimization.md +1239 -0
- package/expertise/performance/web/image-and-media.md +636 -0
- package/expertise/performance/web/index.md +24 -0
- package/expertise/performance/web/network-optimization.md +1133 -0
- package/expertise/performance/web/rendering-performance.md +1098 -0
- package/expertise/performance/web/ssr-and-hydration.md +918 -0
- package/expertise/performance/web/web-vitals.md +1374 -0
- package/expertise/quality/accessibility.md +985 -0
- package/expertise/quality/evidence-based-verification.md +499 -0
- package/expertise/quality/index.md +24 -0
- package/expertise/quality/ml-model-audit.md +614 -0
- package/expertise/quality/performance.md +600 -0
- package/expertise/quality/testing-api.md +891 -0
- package/expertise/quality/testing-mobile.md +496 -0
- package/expertise/quality/testing-web.md +849 -0
- package/expertise/security/PROGRESS.md +54 -0
- package/expertise/security/agentic-identity.md +540 -0
- package/expertise/security/compliance-frameworks.md +601 -0
- package/expertise/security/data/data-encryption.md +364 -0
- package/expertise/security/data/data-privacy-gdpr.md +692 -0
- package/expertise/security/data/database-security.md +1171 -0
- package/expertise/security/data/index.md +22 -0
- package/expertise/security/data/pii-handling.md +531 -0
- package/expertise/security/foundations/authentication.md +1041 -0
- package/expertise/security/foundations/authorization.md +603 -0
- package/expertise/security/foundations/cryptography.md +1001 -0
- package/expertise/security/foundations/index.md +25 -0
- package/expertise/security/foundations/owasp-top-10.md +1354 -0
- package/expertise/security/foundations/secrets-management.md +1217 -0
- package/expertise/security/foundations/secure-sdlc.md +700 -0
- package/expertise/security/foundations/supply-chain-security.md +698 -0
- package/expertise/security/index.md +31 -0
- package/expertise/security/infrastructure/cloud-security-aws.md +1296 -0
- package/expertise/security/infrastructure/cloud-security-gcp.md +1376 -0
- package/expertise/security/infrastructure/container-security.md +721 -0
- package/expertise/security/infrastructure/incident-response.md +1295 -0
- package/expertise/security/infrastructure/index.md +24 -0
- package/expertise/security/infrastructure/logging-and-monitoring.md +1618 -0
- package/expertise/security/infrastructure/network-security.md +1337 -0
- package/expertise/security/mobile/index.md +23 -0
- package/expertise/security/mobile/mobile-android-security.md +1218 -0
- package/expertise/security/mobile/mobile-binary-protection.md +1229 -0
- package/expertise/security/mobile/mobile-data-storage.md +1265 -0
- package/expertise/security/mobile/mobile-ios-security.md +1401 -0
- package/expertise/security/mobile/mobile-network-security.md +1520 -0
- package/expertise/security/smart-contract-security.md +594 -0
- package/expertise/security/testing/index.md +22 -0
- package/expertise/security/testing/penetration-testing.md +1258 -0
- package/expertise/security/testing/security-code-review.md +1765 -0
- package/expertise/security/testing/threat-modeling.md +1074 -0
- package/expertise/security/testing/vulnerability-scanning.md +1062 -0
- package/expertise/security/web/api-security.md +586 -0
- package/expertise/security/web/cors-and-headers.md +433 -0
- package/expertise/security/web/csrf.md +562 -0
- package/expertise/security/web/file-upload.md +1477 -0
- package/expertise/security/web/index.md +25 -0
- package/expertise/security/web/injection.md +1375 -0
- package/expertise/security/web/session-management.md +1101 -0
- package/expertise/security/web/xss.md +1158 -0
- package/exports/README.md +17 -0
- package/exports/hosts/claude/.claude/agents/clarifier.md +42 -0
- package/exports/hosts/claude/.claude/agents/content-author.md +63 -0
- package/exports/hosts/claude/.claude/agents/designer.md +55 -0
- package/exports/hosts/claude/.claude/agents/executor.md +55 -0
- package/exports/hosts/claude/.claude/agents/learner.md +51 -0
- package/exports/hosts/claude/.claude/agents/planner.md +53 -0
- package/exports/hosts/claude/.claude/agents/researcher.md +43 -0
- package/exports/hosts/claude/.claude/agents/reviewer.md +54 -0
- package/exports/hosts/claude/.claude/agents/specifier.md +47 -0
- package/exports/hosts/claude/.claude/agents/verifier.md +71 -0
- package/exports/hosts/claude/.claude/commands/author.md +42 -0
- package/exports/hosts/claude/.claude/commands/clarify.md +38 -0
- package/exports/hosts/claude/.claude/commands/design-review.md +46 -0
- package/exports/hosts/claude/.claude/commands/design.md +44 -0
- package/exports/hosts/claude/.claude/commands/discover.md +37 -0
- package/exports/hosts/claude/.claude/commands/execute.md +48 -0
- package/exports/hosts/claude/.claude/commands/learn.md +38 -0
- package/exports/hosts/claude/.claude/commands/plan-review.md +42 -0
- package/exports/hosts/claude/.claude/commands/plan.md +39 -0
- package/exports/hosts/claude/.claude/commands/prepare-next.md +37 -0
- package/exports/hosts/claude/.claude/commands/review.md +40 -0
- package/exports/hosts/claude/.claude/commands/run-audit.md +41 -0
- package/exports/hosts/claude/.claude/commands/spec-challenge.md +41 -0
- package/exports/hosts/claude/.claude/commands/specify.md +38 -0
- package/exports/hosts/claude/.claude/commands/verify.md +37 -0
- package/exports/hosts/claude/.claude/settings.json +34 -0
- package/exports/hosts/claude/CLAUDE.md +19 -0
- package/exports/hosts/claude/export.manifest.json +38 -0
- package/exports/hosts/claude/host-package.json +67 -0
- package/exports/hosts/codex/AGENTS.md +19 -0
- package/exports/hosts/codex/export.manifest.json +38 -0
- package/exports/hosts/codex/host-package.json +41 -0
- package/exports/hosts/cursor/.cursor/hooks.json +16 -0
- package/exports/hosts/cursor/.cursor/rules/wazir-core.mdc +19 -0
- package/exports/hosts/cursor/export.manifest.json +38 -0
- package/exports/hosts/cursor/host-package.json +42 -0
- package/exports/hosts/gemini/GEMINI.md +19 -0
- package/exports/hosts/gemini/export.manifest.json +38 -0
- package/exports/hosts/gemini/host-package.json +41 -0
- package/hooks/README.md +18 -0
- package/hooks/definitions/loop_cap_guard.yaml +21 -0
- package/hooks/definitions/post_tool_capture.yaml +24 -0
- package/hooks/definitions/pre_compact_summary.yaml +19 -0
- package/hooks/definitions/pre_tool_capture_route.yaml +19 -0
- package/hooks/definitions/protected_path_write_guard.yaml +19 -0
- package/hooks/definitions/session_start.yaml +19 -0
- package/hooks/definitions/stop_handoff_harvest.yaml +20 -0
- package/hooks/loop-cap-guard +17 -0
- package/hooks/post-tool-lint +36 -0
- package/hooks/protected-path-write-guard +17 -0
- package/hooks/session-start +41 -0
- package/llms-full.txt +2355 -0
- package/llms.txt +43 -0
- package/package.json +79 -0
- package/roles/README.md +20 -0
- package/roles/clarifier.md +42 -0
- package/roles/content-author.md +63 -0
- package/roles/designer.md +55 -0
- package/roles/executor.md +55 -0
- package/roles/learner.md +51 -0
- package/roles/planner.md +53 -0
- package/roles/researcher.md +43 -0
- package/roles/reviewer.md +54 -0
- package/roles/specifier.md +47 -0
- package/roles/verifier.md +71 -0
- package/schemas/README.md +24 -0
- package/schemas/accepted-learning.schema.json +20 -0
- package/schemas/author-artifact.schema.json +156 -0
- package/schemas/clarification.schema.json +19 -0
- package/schemas/design-artifact.schema.json +80 -0
- package/schemas/docs-claim.schema.json +18 -0
- package/schemas/export-manifest.schema.json +20 -0
- package/schemas/hook.schema.json +67 -0
- package/schemas/host-export-package.schema.json +18 -0
- package/schemas/implementation-plan.schema.json +19 -0
- package/schemas/proposed-learning.schema.json +19 -0
- package/schemas/research.schema.json +18 -0
- package/schemas/review.schema.json +29 -0
- package/schemas/run-manifest.schema.json +18 -0
- package/schemas/spec-challenge.schema.json +18 -0
- package/schemas/spec.schema.json +20 -0
- package/schemas/usage.schema.json +102 -0
- package/schemas/verification-proof.schema.json +29 -0
- package/schemas/wazir-manifest.schema.json +173 -0
- package/skills/README.md +40 -0
- package/skills/brainstorming/SKILL.md +77 -0
- package/skills/debugging/SKILL.md +50 -0
- package/skills/design/SKILL.md +61 -0
- package/skills/dispatching-parallel-agents/SKILL.md +128 -0
- package/skills/executing-plans/SKILL.md +70 -0
- package/skills/finishing-a-development-branch/SKILL.md +169 -0
- package/skills/humanize/SKILL.md +123 -0
- package/skills/init-pipeline/SKILL.md +124 -0
- package/skills/prepare-next/SKILL.md +20 -0
- package/skills/receiving-code-review/SKILL.md +123 -0
- package/skills/requesting-code-review/SKILL.md +105 -0
- package/skills/requesting-code-review/code-reviewer.md +108 -0
- package/skills/run-audit/SKILL.md +197 -0
- package/skills/scan-project/SKILL.md +41 -0
- package/skills/self-audit/SKILL.md +153 -0
- package/skills/subagent-driven-development/SKILL.md +154 -0
- package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +26 -0
- package/skills/subagent-driven-development/implementer-prompt.md +102 -0
- package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
- package/skills/tdd/SKILL.md +23 -0
- package/skills/using-git-worktrees/SKILL.md +163 -0
- package/skills/using-skills/SKILL.md +95 -0
- package/skills/verification/SKILL.md +22 -0
- package/skills/wazir/SKILL.md +463 -0
- package/skills/writing-plans/SKILL.md +30 -0
- package/skills/writing-skills/SKILL.md +157 -0
- package/skills/writing-skills/anthropic-best-practices.md +122 -0
- package/skills/writing-skills/persuasion-principles.md +50 -0
- package/templates/README.md +20 -0
- package/templates/artifacts/README.md +10 -0
- package/templates/artifacts/accepted-learning.md +19 -0
- package/templates/artifacts/accepted-learning.template.json +12 -0
- package/templates/artifacts/author.md +74 -0
- package/templates/artifacts/author.template.json +19 -0
- package/templates/artifacts/clarification.md +21 -0
- package/templates/artifacts/clarification.template.json +12 -0
- package/templates/artifacts/execute-notes.md +19 -0
- package/templates/artifacts/implementation-plan.md +21 -0
- package/templates/artifacts/implementation-plan.template.json +11 -0
- package/templates/artifacts/learning-proposal.md +19 -0
- package/templates/artifacts/next-run-handoff.md +21 -0
- package/templates/artifacts/plan-review.md +19 -0
- package/templates/artifacts/proposed-learning.template.json +12 -0
- package/templates/artifacts/research.md +21 -0
- package/templates/artifacts/research.template.json +12 -0
- package/templates/artifacts/review-findings.md +19 -0
- package/templates/artifacts/review.template.json +11 -0
- package/templates/artifacts/run-manifest.template.json +8 -0
- package/templates/artifacts/spec-challenge.md +19 -0
- package/templates/artifacts/spec-challenge.template.json +11 -0
- package/templates/artifacts/spec.md +21 -0
- package/templates/artifacts/spec.template.json +12 -0
- package/templates/artifacts/verification-proof.md +19 -0
- package/templates/artifacts/verification-proof.template.json +11 -0
- package/templates/examples/accepted-learning.example.json +14 -0
- package/templates/examples/author.example.json +152 -0
- package/templates/examples/clarification.example.json +15 -0
- package/templates/examples/docs-claim.example.json +8 -0
- package/templates/examples/export-manifest.example.json +7 -0
- package/templates/examples/host-export-package.example.json +11 -0
- package/templates/examples/implementation-plan.example.json +17 -0
- package/templates/examples/proposed-learning.example.json +13 -0
- package/templates/examples/research.example.json +15 -0
- package/templates/examples/research.example.md +6 -0
- package/templates/examples/review.example.json +17 -0
- package/templates/examples/run-manifest.example.json +9 -0
- package/templates/examples/spec-challenge.example.json +14 -0
- package/templates/examples/spec.example.json +21 -0
- package/templates/examples/verification-proof.example.json +21 -0
- package/templates/examples/wazir-manifest.example.yaml +65 -0
- package/templates/task-definition-schema.md +99 -0
- package/tooling/README.md +20 -0
- package/tooling/src/adapters/context-mode.js +50 -0
- package/tooling/src/capture/command.js +376 -0
- package/tooling/src/capture/store.js +99 -0
- package/tooling/src/capture/usage.js +270 -0
- package/tooling/src/checks/branches.js +50 -0
- package/tooling/src/checks/brand-truth.js +110 -0
- package/tooling/src/checks/changelog.js +231 -0
- package/tooling/src/checks/command-registry.js +36 -0
- package/tooling/src/checks/commits.js +102 -0
- package/tooling/src/checks/docs-drift.js +103 -0
- package/tooling/src/checks/docs-truth.js +201 -0
- package/tooling/src/checks/runtime-surface.js +156 -0
- package/tooling/src/cli.js +116 -0
- package/tooling/src/command-options.js +56 -0
- package/tooling/src/commands/validate.js +320 -0
- package/tooling/src/doctor/command.js +91 -0
- package/tooling/src/export/command.js +77 -0
- package/tooling/src/export/compiler.js +498 -0
- package/tooling/src/guards/loop-cap-guard.js +52 -0
- package/tooling/src/guards/protected-path-write-guard.js +67 -0
- package/tooling/src/index/command.js +152 -0
- package/tooling/src/index/storage.js +1061 -0
- package/tooling/src/index/summarizers.js +261 -0
- package/tooling/src/loaders.js +18 -0
- package/tooling/src/project-root.js +22 -0
- package/tooling/src/recall/command.js +225 -0
- package/tooling/src/schema-validator.js +30 -0
- package/tooling/src/state-root.js +40 -0
- package/tooling/src/status/command.js +71 -0
- package/wazir.manifest.yaml +135 -0
- package/workflows/README.md +19 -0
- package/workflows/author.md +42 -0
- package/workflows/clarify.md +38 -0
- package/workflows/design-review.md +46 -0
- package/workflows/design.md +44 -0
- package/workflows/discover.md +37 -0
- package/workflows/execute.md +48 -0
- package/workflows/learn.md +38 -0
- package/workflows/plan-review.md +42 -0
- package/workflows/plan.md +39 -0
- package/workflows/prepare-next.md +37 -0
- package/workflows/review.md +40 -0
- package/workflows/run-audit.md +41 -0
- package/workflows/spec-challenge.md +41 -0
- package/workflows/specify.md +38 -0
- package/workflows/verify.md +37 -0
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
# self-audit
|
|
2
|
+
|
|
3
|
+
> Worktree-isolated audit-fix loop for the Wazir project itself. Validates, audits, fixes, verifies, and merges only on all-green. The main worktree is never touched until every check passes.
|
|
4
|
+
|
|
5
|
+
| Property | Value |
|
|
6
|
+
|---|---|
|
|
7
|
+
| **ID** | `self-audit` |
|
|
8
|
+
| **Type** | Flexible |
|
|
9
|
+
| **Trigger** | `/self-audit` or explicit operator request for a self-audit loop |
|
|
10
|
+
| **Safety guarantee** | Main worktree untouched until all Phase 4 checks pass in isolation |
|
|
11
|
+
|
|
12
|
+
## Purpose
|
|
13
|
+
|
|
14
|
+
`self-audit` is `run-audit` with an important difference: it operates on the Wazir project itself, using git worktree isolation to guarantee that fixes are safe before they reach the main working tree. No partial fix state ever lands on main — the worktree is discarded if Phase 4 verification fails.
|
|
15
|
+
|
|
16
|
+
It also goes beyond a standard audit by running every CLI validation check and performing a deep structural consistency analysis that CLI checks alone cannot catch.
|
|
17
|
+
|
|
18
|
+
## When to Invoke
|
|
19
|
+
|
|
20
|
+
- Before a release or major merge.
|
|
21
|
+
- When documentation drift is suspected (roles, workflows, skills out of sync with manifest).
|
|
22
|
+
- After a batch of changes to validate overall project coherence.
|
|
23
|
+
- On a scheduled review cadence.
|
|
24
|
+
- Explicitly: operator invokes `/self-audit`.
|
|
25
|
+
|
|
26
|
+
## When NOT to Invoke
|
|
27
|
+
|
|
28
|
+
- You want to audit a non-Wazir codebase — use `run-audit`.
|
|
29
|
+
- You are making a known targeted fix — make the fix directly, then run `wz:verification`.
|
|
30
|
+
|
|
31
|
+
> [!WARNING]
|
|
32
|
+
> Never run self-audit on the main worktree directly. The skill's safety guarantee depends on worktree isolation. If the isolation step is skipped, fixes may leave the project in a broken intermediate state.
|
|
33
|
+
|
|
34
|
+
## Worktree Isolation Model
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
main worktree (untouched throughout)
|
|
38
|
+
└── agent spawns in isolated git worktree
|
|
39
|
+
├── Phase 1: CLI Validation Sweep
|
|
40
|
+
├── Phase 2: Deep Structural Audit
|
|
41
|
+
├── Phase 3: Fix (auto-fixable issues)
|
|
42
|
+
├── Phase 4: Verify (re-run all checks — must be all-green)
|
|
43
|
+
└── Phase 5: Report + commit in worktree (if green)
|
|
44
|
+
↓
|
|
45
|
+
caller merges back to main (on green)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
If Phase 4 fails: worktree is discarded. Main is unchanged.
|
|
49
|
+
|
|
50
|
+
## Phase 1: CLI Validation Sweep
|
|
51
|
+
|
|
52
|
+
Runs every validation check and captures pass/fail:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
node tooling/src/cli.js validate manifest
|
|
56
|
+
node tooling/src/cli.js validate hooks
|
|
57
|
+
node tooling/src/cli.js validate docs
|
|
58
|
+
node tooling/src/cli.js validate brand
|
|
59
|
+
node tooling/src/cli.js validate runtime
|
|
60
|
+
node tooling/src/cli.js validate changelog
|
|
61
|
+
node tooling/src/cli.js validate commits
|
|
62
|
+
node tooling/src/cli.js doctor --json
|
|
63
|
+
node tooling/src/cli.js export --check
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Any failure is a finding that goes into the audit report.
|
|
67
|
+
|
|
68
|
+
## Phase 2: Deep Structural Audit
|
|
69
|
+
|
|
70
|
+
Six categories of structural checks that CLI validation does not cover:
|
|
71
|
+
|
|
72
|
+
| Category | What Is Checked |
|
|
73
|
+
|---|---|
|
|
74
|
+
| Cross-reference consistency | Every manifest role/workflow has a corresponding file; every skill dir has `SKILL.md`; composition map concerns reference existing modules |
|
|
75
|
+
| Documentation drift | `docs/architecture.md` component table vs. actual dirs; `docs/roles-and-workflows.md` vs. manifest; README claims vs. actual state |
|
|
76
|
+
| Export freshness | Generated exports match canonical sources via `export --check` |
|
|
77
|
+
| Schema coverage | Every workflow that produces artifacts has a corresponding schema; all schema files are valid JSON |
|
|
78
|
+
| Hook integrity | Hook scripts in `.claude/settings.json` exist and are executable; hook definitions cover all manifest-required hooks |
|
|
79
|
+
| Skill structure | Each `skills/` directory has well-formed `SKILL.md` with frontmatter; referenced skills exist |
|
|
80
|
+
|
|
81
|
+
## Phase 3: Fix
|
|
82
|
+
|
|
83
|
+
For each finding:
|
|
84
|
+
|
|
85
|
+
| Category | Action |
|
|
86
|
+
|---|---|
|
|
87
|
+
| Auto-fixable | Apply fix directly (missing stubs, stale exports, doc drift, permission issues, schema formatting) |
|
|
88
|
+
| Manual-required | Document in audit report with remediation guidance |
|
|
89
|
+
|
|
90
|
+
Fix constraints:
|
|
91
|
+
- Never modify `input/` (read-only operator surface)
|
|
92
|
+
- Prefer updating docs to match code (code is truth) unless code is clearly wrong
|
|
93
|
+
- Keep fixes minimal — one concern per change
|
|
94
|
+
|
|
95
|
+
## Phase 4: Verify
|
|
96
|
+
|
|
97
|
+
Re-runs the entire Phase 1 CLI sweep. **All checks must pass.**
|
|
98
|
+
|
|
99
|
+
If any check fails after fixes:
|
|
100
|
+
1. Revert the failing fix.
|
|
101
|
+
2. Document the revert and root cause.
|
|
102
|
+
3. Re-verify.
|
|
103
|
+
4. If still failing, mark as manual-required and proceed with remaining passing checks.
|
|
104
|
+
|
|
105
|
+
## Phase 5: Report and Commit
|
|
106
|
+
|
|
107
|
+
Produces a structured report:
|
|
108
|
+
|
|
109
|
+
```markdown
|
|
110
|
+
# Self-Audit Report — Loop N — 2026-03-13
|
|
111
|
+
|
|
112
|
+
## Validation Sweep
|
|
113
|
+
| Check | Before | After |
|
|
114
|
+
|----------|--------|-------|
|
|
115
|
+
| manifest | FAIL | PASS |
|
|
116
|
+
| hooks | PASS | PASS |
|
|
117
|
+
|
|
118
|
+
## Auto-Fixed (2)
|
|
119
|
+
- [F-001] skills/scan-project/SKILL.md missing frontmatter — added name/description fields
|
|
120
|
+
- [F-002] docs/architecture.md component count was 8, actual is 9 — updated count
|
|
121
|
+
|
|
122
|
+
## Manual Required (1)
|
|
123
|
+
- [M-001] schema for `design_review` workflow missing — create schemas/design-review.schema.json
|
|
124
|
+
|
|
125
|
+
## Verification
|
|
126
|
+
All checks: PASS
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
On all-green: commits in the worktree with `fix(self-audit): loop N — <summary>`. Caller merges back.
|
|
130
|
+
|
|
131
|
+
## Loop Behavior
|
|
132
|
+
|
|
133
|
+
Multiple loops converge to clean:
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
Loop 1: finds 5 issues, fixes 4, 1 manual → all checks green → commit
|
|
137
|
+
Loop 2: finds 1 issue (introduced by Loop 1), fixes it → all checks green → commit
|
|
138
|
+
Loop 3: finds 0 issues → project is clean
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Each loop runs in a fresh worktree, independent of previous loops.
|
|
142
|
+
|
|
143
|
+
## Example
|
|
144
|
+
|
|
145
|
+
**Scenario:** Running self-audit before a 0.2.0 release tag.
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
Operator: /self-audit
|
|
149
|
+
|
|
150
|
+
Agent: Spawning isolated worktree for self-audit Loop 1...
|
|
151
|
+
Phase 1: Running CLI validation sweep...
|
|
152
|
+
validate manifest: PASS
|
|
153
|
+
validate hooks: FAIL — session_start definition missing loop_cap field
|
|
154
|
+
validate docs: FAIL — skills count in README is 10, actual is 11
|
|
155
|
+
...
|
|
156
|
+
|
|
157
|
+
Phase 2: Deep structural audit...
|
|
158
|
+
F-003: skills/using-skills referenced in docs/skills.md but directory has wz:using-skills prefix — DRIFT
|
|
159
|
+
...
|
|
160
|
+
|
|
161
|
+
Phase 3: Fixing auto-fixable issues...
|
|
162
|
+
F-001: Added loop_cap to session_start.yaml
|
|
163
|
+
F-002: Updated README skill count to 11
|
|
164
|
+
F-003: Aligned docs/skills.md reference to match actual skill ID
|
|
165
|
+
|
|
166
|
+
Phase 4: Re-running validation sweep...
|
|
167
|
+
All checks: PASS
|
|
168
|
+
|
|
169
|
+
Phase 5: Committed — fix(self-audit): loop 1 — fix hook schema, skill count drift, doc reference alignment
|
|
170
|
+
|
|
171
|
+
Worktree ready for merge.
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
## Integration
|
|
175
|
+
|
|
176
|
+
`self-audit` is the Wazir equivalent of `run-audit` — it is the loop that keeps the OS kit itself coherent. After merge, the resulting commit can be used as a clean baseline for `prepare-next` handoffs.
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# wz:tdd
|
|
2
|
+
|
|
3
|
+
> RED → GREEN → REFACTOR. No shortcuts. Every behavioral change earns a failing test first.
|
|
4
|
+
|
|
5
|
+
| Property | Value |
|
|
6
|
+
|---|---|
|
|
7
|
+
| **ID** | `wz:tdd` |
|
|
8
|
+
| **Type** | Rigid |
|
|
9
|
+
| **Trigger** | Any implementation work that changes behavior |
|
|
10
|
+
| **Failure mode** | Code written without test coverage, or tests rewritten to fit broken behavior |
|
|
11
|
+
|
|
12
|
+
## Purpose
|
|
13
|
+
|
|
14
|
+
`wz:tdd` enforces the test-driven development discipline for every behavioral change. It prevents the two most common AI coding failures: (1) confident implementation with no verification path, and (2) retrofitted tests written to confirm broken behavior rather than specify correct behavior. The discipline is the point — it cannot be adapted away.
|
|
15
|
+
|
|
16
|
+
## When to Invoke
|
|
17
|
+
|
|
18
|
+
- Implementing any new feature or behavioral change.
|
|
19
|
+
- Fixing a bug where automated verification is feasible.
|
|
20
|
+
- Any task in an implementation plan that changes how code behaves.
|
|
21
|
+
|
|
22
|
+
> [!TIP]
|
|
23
|
+
> If the implementation plan has been written by `wz:writing-plans`, each plan task becomes a RED → GREEN → REFACTOR cycle. Work through the plan one task at a time.
|
|
24
|
+
|
|
25
|
+
## When NOT to Invoke
|
|
26
|
+
|
|
27
|
+
- Pure documentation changes with no code impact.
|
|
28
|
+
- Configuration changes with no behavioral implications.
|
|
29
|
+
- Environments where automated testing is explicitly infeasible (document this explicitly — do not silently skip).
|
|
30
|
+
|
|
31
|
+
> [!WARNING]
|
|
32
|
+
> "I'll write the tests after" is not TDD. The failing test must exist before the implementation. If you skip RED, you are not following this skill — you are rationalizing around it.
|
|
33
|
+
|
|
34
|
+
## Phases
|
|
35
|
+
|
|
36
|
+
### 1. RED
|
|
37
|
+
|
|
38
|
+
Write or update a test that expresses the new behavior or the bug being fixed.
|
|
39
|
+
|
|
40
|
+
- The test must **fail** when you run it. Confirm failure explicitly.
|
|
41
|
+
- A test that passes before the implementation is not a test — it is noise.
|
|
42
|
+
- Record the failure output as evidence.
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
npm test -- --grep "new behavior"
|
|
46
|
+
# Must show: 1 failing
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### 2. GREEN
|
|
50
|
+
|
|
51
|
+
Write the **smallest** implementation change that makes the failing test pass.
|
|
52
|
+
|
|
53
|
+
- Do not write more code than the test requires.
|
|
54
|
+
- Do not solve adjacent problems.
|
|
55
|
+
- Run the test. Confirm it now passes.
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
npm test -- --grep "new behavior"
|
|
59
|
+
# Must show: 1 passing
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### 3. REFACTOR
|
|
63
|
+
|
|
64
|
+
Improve the structure of the implementation without changing behavior.
|
|
65
|
+
|
|
66
|
+
- Run the full relevant test set after each structural change.
|
|
67
|
+
- All tests must remain green throughout refactor.
|
|
68
|
+
- Stop when the code is clean — do not gold-plate.
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
npm test
|
|
72
|
+
# Must show: all passing
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Rules
|
|
76
|
+
|
|
77
|
+
| Rule | Enforcement |
|
|
78
|
+
|---|---|
|
|
79
|
+
| Do not skip the failing-test step when automated verification is feasible | RED is mandatory |
|
|
80
|
+
| Do not rewrite tests to fit broken behavior | Tests specify behavior; code must satisfy tests |
|
|
81
|
+
| Rerun verification after each meaningful refactor | REFACTOR must not break GREEN |
|
|
82
|
+
|
|
83
|
+
## Input
|
|
84
|
+
|
|
85
|
+
- Implementation plan task (from `wz:writing-plans`)
|
|
86
|
+
- Existing test suite
|
|
87
|
+
- Acceptance criteria from the plan section
|
|
88
|
+
|
|
89
|
+
## Output
|
|
90
|
+
|
|
91
|
+
| Artifact | Description |
|
|
92
|
+
|---|---|
|
|
93
|
+
| Failing test (RED) | Test expressing the new behavior, confirmed failing |
|
|
94
|
+
| Passing implementation (GREEN) | Minimum code to satisfy the test |
|
|
95
|
+
| Clean codebase (REFACTOR) | Improved structure with full test suite green |
|
|
96
|
+
|
|
97
|
+
## Example
|
|
98
|
+
|
|
99
|
+
**Task from plan:** "Rate limit middleware returns 429 when token bucket is exhausted."
|
|
100
|
+
|
|
101
|
+
```javascript
|
|
102
|
+
// RED: Write the failing test
|
|
103
|
+
describe('rate-limit middleware', () => {
|
|
104
|
+
it('returns 429 when token bucket exhausted', async () => {
|
|
105
|
+
await exhaustBucket('token-abc');
|
|
106
|
+
const res = await request(app).get('/api/data').set('Authorization', 'Bearer token-abc');
|
|
107
|
+
expect(res.status).toBe(429);
|
|
108
|
+
expect(res.headers['retry-after']).toBeDefined();
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
// Run: 1 failing — ReferenceError: exhaustBucket is not defined (or 200 returned)
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
```javascript
|
|
115
|
+
// GREEN: Write minimum implementation
|
|
116
|
+
// src/middleware/rate-limit.js — add 429 return when bucket empty
|
|
117
|
+
if (tokens <= 0) {
|
|
118
|
+
res.set('Retry-After', ttl);
|
|
119
|
+
return res.status(429).json({ error: 'Rate limit exceeded' });
|
|
120
|
+
}
|
|
121
|
+
// Run: 1 passing
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
```javascript
|
|
125
|
+
// REFACTOR: Extract magic numbers to config
|
|
126
|
+
// Run full suite: all passing
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Integration
|
|
130
|
+
|
|
131
|
+
`wz:tdd` is the execution engine of the delivery chain:
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
wz:writing-plans (plan) → wz:tdd (RED/GREEN/REFACTOR per task) → wz:verification (completion proof)
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
When a test fails unexpectedly during GREEN or REFACTOR, invoke `wz:debugging` to diagnose before continuing.
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# wz:using-skills
|
|
2
|
+
|
|
3
|
+
> The skill discovery bootstrap. Fires before any response. Makes every other skill reachable.
|
|
4
|
+
|
|
5
|
+
| Property | Value |
|
|
6
|
+
|---|---|
|
|
7
|
+
| **ID** | `wz:using-skills` |
|
|
8
|
+
| **Type** | Rigid |
|
|
9
|
+
| **Trigger** | Session start — every new conversation |
|
|
10
|
+
| **Failure mode** | Silent degradation (skills not discovered) |
|
|
11
|
+
|
|
12
|
+
## Purpose
|
|
13
|
+
|
|
14
|
+
`wz:using-skills` establishes the rule that skill invocation must happen **before any response** — including clarifying questions. Without this skill firing at session start, an agent may answer confidently from memory instead of consulting the live, current skill definitions. Skills evolve; memory does not.
|
|
15
|
+
|
|
16
|
+
This skill is not optional scaffolding. It is the enforcement mechanism that makes all other skills reachable and current.
|
|
17
|
+
|
|
18
|
+
## When to Invoke
|
|
19
|
+
|
|
20
|
+
- At the start of every session, automatically via the `session-start` hook.
|
|
21
|
+
- Any time there is even a 1% chance another skill applies to the current task.
|
|
22
|
+
|
|
23
|
+
> [!WARNING]
|
|
24
|
+
> These thoughts indicate you are rationalizing your way out of skill invocation:
|
|
25
|
+
> - "This is just a simple question" — questions are tasks, check for skills.
|
|
26
|
+
> - "I need more context first" — skill check comes BEFORE clarifying questions.
|
|
27
|
+
> - "I remember this skill" — skills evolve. Read the current version.
|
|
28
|
+
> - "I know what that means" — knowing the concept is not the same as invoking the skill.
|
|
29
|
+
|
|
30
|
+
## When NOT to Invoke
|
|
31
|
+
|
|
32
|
+
There is no situation where this skill should be suppressed. It is the meta-skill that governs all others.
|
|
33
|
+
|
|
34
|
+
## Phases
|
|
35
|
+
|
|
36
|
+
1. **Session hook fires** — the `hooks/session-start` script runs, reads `skills/using-skills/SKILL.md`, and injects the full content into the agent's system context as `<EXTREMELY_IMPORTANT>`.
|
|
37
|
+
2. **Agent receives skill** — the agent now knows the skill invocation rule and the skill priority order.
|
|
38
|
+
3. **On every user message** — agent checks: might any skill apply?
|
|
39
|
+
4. **Invoke Skill tool** — if yes (even 1%), invoke via the `Skill` tool before any other action.
|
|
40
|
+
5. **Announce** — state "Using [skill] to [purpose]".
|
|
41
|
+
6. **Follow the loaded skill** — if the invoked skill has a checklist, create a TodoWrite item per item.
|
|
42
|
+
|
|
43
|
+
## Input
|
|
44
|
+
|
|
45
|
+
- Session start event (automatic via hook)
|
|
46
|
+
- Any user message (manual check)
|
|
47
|
+
|
|
48
|
+
## Output
|
|
49
|
+
|
|
50
|
+
- Agent operating with current skill definitions loaded
|
|
51
|
+
- Skill invocation announcement before any response
|
|
52
|
+
|
|
53
|
+
## Example
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
User: "Help me fix this test that's failing"
|
|
57
|
+
|
|
58
|
+
Agent (internal): Might a skill apply? "fix failing test" -> wz:debugging (100%)
|
|
59
|
+
Agent: Invoking wz:debugging skill...
|
|
60
|
+
Agent: "Using wz:debugging to diagnose the failing test via observe-hypothesize-test-fix loop."
|
|
61
|
+
[Follows wz:debugging exactly from here]
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Without `wz:using-skills` active, the agent might skip straight to guessing the fix — bypassing the disciplined debugging loop entirely.
|
|
65
|
+
|
|
66
|
+
## Integration
|
|
67
|
+
|
|
68
|
+
`wz:using-skills` is the gateway skill. It does not perform work itself — it ensures the right skill is invoked for every piece of work:
|
|
69
|
+
|
|
70
|
+
| Situation | Skill invoked via wz:using-skills |
|
|
71
|
+
|---|---|
|
|
72
|
+
| About to enter plan mode | `wz:brainstorming` (if not yet brainstormed) |
|
|
73
|
+
| Implementation task | `wz:tdd` |
|
|
74
|
+
| Bug / unexpected behavior | `wz:debugging` |
|
|
75
|
+
| Claiming work is done | `wz:verification` |
|
|
76
|
+
| End of session | `prepare-next` |
|
|
77
|
+
|
|
78
|
+
## Skill Priority Order
|
|
79
|
+
|
|
80
|
+
1. Process skills (`wz:brainstorming`, `wz:debugging`) — determine HOW to approach.
|
|
81
|
+
2. Implementation skills (`wz:tdd`, `wz:design`) — guide execution.
|
|
82
|
+
|
|
83
|
+
## Testing
|
|
84
|
+
|
|
85
|
+
Verify the hook fires correctly:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
node hooks/session-start
|
|
89
|
+
# Should print: <EXTREMELY_IMPORTANT>You have skills...
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
If `skills/using-skills/SKILL.md` is missing, the script emits a WARNING and exits 0 — the session proceeds without skill bootstrap.
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# wz:verification
|
|
2
|
+
|
|
3
|
+
> No success claim without fresh evidence from the current change. Evidence means a command you ran, not a command you remember running.
|
|
4
|
+
|
|
5
|
+
| Property | Value |
|
|
6
|
+
|---|---|
|
|
7
|
+
| **ID** | `wz:verification` |
|
|
8
|
+
| **Type** | Rigid |
|
|
9
|
+
| **Trigger** | Before any claim that work is complete |
|
|
10
|
+
| **Failure mode** | False completion — declaring done without proof, creating silent technical debt |
|
|
11
|
+
|
|
12
|
+
## Purpose
|
|
13
|
+
|
|
14
|
+
`wz:verification` closes the loop on every unit of work. AI agents are capable of confidently asserting completion while the implementation is broken, the tests are skipped, or the wrong problem was solved. This skill makes that impossible by requiring a documented proof path — not a plausibility argument — before any completion claim is accepted.
|
|
15
|
+
|
|
16
|
+
The rule is simple: if you cannot show the output of a command that proves it works, the work is not done.
|
|
17
|
+
|
|
18
|
+
## When to Invoke
|
|
19
|
+
|
|
20
|
+
- Before saying "done", "complete", "finished", "working", or any equivalent.
|
|
21
|
+
- After each task in a `wz:writing-plans` implementation plan section.
|
|
22
|
+
- After every `wz:tdd` REFACTOR cycle.
|
|
23
|
+
- After applying a fix from `wz:debugging`.
|
|
24
|
+
- Before handing off to `prepare-next`.
|
|
25
|
+
|
|
26
|
+
> [!WARNING]
|
|
27
|
+
> "It should work" is not verification. "I tested it earlier" is not verification. "The logic looks correct" is not verification. Only fresh command output from the current change state counts.
|
|
28
|
+
|
|
29
|
+
## When NOT to Invoke
|
|
30
|
+
|
|
31
|
+
- You are still mid-implementation (RED or GREEN phase of TDD) — verification applies to completed work.
|
|
32
|
+
- The task is explicitly documentation-only and has no executable verification path — document this explicitly rather than silently skipping.
|
|
33
|
+
|
|
34
|
+
## Phases
|
|
35
|
+
|
|
36
|
+
1. **Identify what to verify** — every completion claim must state what is being verified.
|
|
37
|
+
2. **Determine the verification path** — a specific command, or a deterministic manual check if commands are not available.
|
|
38
|
+
3. **Run the verification** — execute it now, against the current state of the change.
|
|
39
|
+
4. **Record the result** — actual output, exit code, or observable outcome.
|
|
40
|
+
5. **Pass or fail** — if pass, the completion claim is valid. If fail, fix and re-verify.
|
|
41
|
+
|
|
42
|
+
## Input
|
|
43
|
+
|
|
44
|
+
- The work claimed to be complete
|
|
45
|
+
- The acceptance criteria for that work (from the implementation plan, if one exists)
|
|
46
|
+
|
|
47
|
+
## Output
|
|
48
|
+
|
|
49
|
+
A verification record with three required fields:
|
|
50
|
+
|
|
51
|
+
| Field | Description |
|
|
52
|
+
|---|---|
|
|
53
|
+
| What was verified | The specific behavior, output, or state confirmed |
|
|
54
|
+
| The exact command or check | Reproducible by anyone reading the record |
|
|
55
|
+
| The actual result | Not the expected result — the actual output |
|
|
56
|
+
|
|
57
|
+
## Verification Record Format
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
Verified: rate-limit middleware returns 429 when token bucket is exhausted
|
|
61
|
+
Command: npm test -- --grep "rate-limit returns 429"
|
|
62
|
+
Result: 1 passing (34ms)
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Example
|
|
66
|
+
|
|
67
|
+
**Scenario:** Implementation plan Section 2 (rate-limit middleware) is complete.
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
Agent: Invoking wz:verification before claiming Section 2 complete.
|
|
71
|
+
|
|
72
|
+
What to verify: middleware returns 429 + Retry-After header when bucket exhausted
|
|
73
|
+
Command: npm test -- --grep rate-limit
|
|
74
|
+
Result:
|
|
75
|
+
rate-limit middleware
|
|
76
|
+
✓ allows request when bucket has tokens (12ms)
|
|
77
|
+
✓ returns 429 when bucket exhausted (18ms)
|
|
78
|
+
✓ sets Retry-After header (8ms)
|
|
79
|
+
3 passing (38ms)
|
|
80
|
+
|
|
81
|
+
Section 2: VERIFIED. Proceeding to Section 3.
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**Failure scenario:**
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
Agent: Invoking wz:verification.
|
|
88
|
+
Command: npm test
|
|
89
|
+
Result:
|
|
90
|
+
1) rate-limit middleware — returns 429 when bucket exhausted
|
|
91
|
+
AssertionError: expected 200 to equal 429
|
|
92
|
+
|
|
93
|
+
Verification FAILED. Invoking wz:debugging.
|
|
94
|
+
[Debugging cycle resolves the issue]
|
|
95
|
+
[Re-running verification]
|
|
96
|
+
Command: npm test
|
|
97
|
+
Result: 4 passing
|
|
98
|
+
Verification PASSED. Completion claim now valid.
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## When Verification Fails
|
|
102
|
+
|
|
103
|
+
1. Do not mark the work complete.
|
|
104
|
+
2. Do not adjust the acceptance criteria to match the failure.
|
|
105
|
+
3. Fix the issue — invoke `wz:debugging` if the cause is unclear.
|
|
106
|
+
4. Re-run verification after the fix.
|
|
107
|
+
5. Only claim completion after verification passes.
|
|
108
|
+
|
|
109
|
+
## Integration
|
|
110
|
+
|
|
111
|
+
`wz:verification` is the mandatory exit gate for every execution unit:
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
wz:tdd (GREEN) → wz:verification → move to next task
|
|
115
|
+
wz:tdd (REFACTOR) → wz:verification → section complete
|
|
116
|
+
fix applied → wz:verification → wz:debugging if still failing
|
|
117
|
+
execution phase done → wz:verification → prepare-next
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Verification records become the evidence trail in `prepare-next` handoffs and `stop_handoff_harvest` observability data.
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# wz:writing-plans
|
|
2
|
+
|
|
3
|
+
> Transform an approved design into an execution-grade implementation plan — detailed enough that a weaker model can follow it without inventing missing steps.
|
|
4
|
+
|
|
5
|
+
| Property | Value |
|
|
6
|
+
|---|---|
|
|
7
|
+
| **ID** | `wz:writing-plans` |
|
|
8
|
+
| **Type** | Rigid |
|
|
9
|
+
| **Trigger** | After design approval from `wz:brainstorming` or `run-audit` plan mode |
|
|
10
|
+
| **Failure mode** | Vague plans that force improvisation during execution |
|
|
11
|
+
|
|
12
|
+
## Purpose
|
|
13
|
+
|
|
14
|
+
`wz:writing-plans` converts approved intent into a concrete, ordered execution plan. The bar is explicit: the plan must be detailed enough that another agent — potentially a less capable one — can execute it without needing to invent steps, make scope decisions, or guess at acceptance criteria. Ambiguity left in a plan becomes compounding rework during execution.
|
|
15
|
+
|
|
16
|
+
## When to Invoke
|
|
17
|
+
|
|
18
|
+
- Immediately after `wz:brainstorming` produces an operator-approved design.
|
|
19
|
+
- After `run-audit` plan mode — when audit findings are approved as a fix basis.
|
|
20
|
+
- When a clarified direction has been approved and implementation is ready to start.
|
|
21
|
+
|
|
22
|
+
> [!WARNING]
|
|
23
|
+
> Do not invoke this skill without an approved design or approved direction in `docs/plans/`. Writing a plan from an unreviewed design skips the human approval gate and produces work the operator hasn't signed off on.
|
|
24
|
+
|
|
25
|
+
## When NOT to Invoke
|
|
26
|
+
|
|
27
|
+
- No approved design exists yet — invoke `wz:brainstorming` first.
|
|
28
|
+
- The task is exploratory research — use `scan-project` or `run-audit` instead.
|
|
29
|
+
- You are mid-execution and already have a plan — do not re-plan, execute.
|
|
30
|
+
|
|
31
|
+
## Phases
|
|
32
|
+
|
|
33
|
+
1. **Read the approved design** — from `docs/plans/YYYY-MM-DD-<topic>-design.md`.
|
|
34
|
+
2. **Read current repo state** — understand what already exists vs. what needs to be created or changed.
|
|
35
|
+
3. **Incorporate research findings** — pull in any relevant findings from the discover phase.
|
|
36
|
+
4. **Write the implementation plan** — to `docs/plans/YYYY-MM-DD-<topic>-implementation.md`.
|
|
37
|
+
5. **Review plan structure** — verify it satisfies all required sections before handing off to execution.
|
|
38
|
+
|
|
39
|
+
## Input
|
|
40
|
+
|
|
41
|
+
| Source | Required |
|
|
42
|
+
|---|---|
|
|
43
|
+
| Approved design doc in `docs/plans/` | Yes |
|
|
44
|
+
| Current repo state | Yes |
|
|
45
|
+
| Research findings from discover phase | If available |
|
|
46
|
+
|
|
47
|
+
## Output
|
|
48
|
+
|
|
49
|
+
One implementation plan at `docs/plans/YYYY-MM-DD-<topic>-implementation.md`.
|
|
50
|
+
|
|
51
|
+
### Required Plan Sections
|
|
52
|
+
|
|
53
|
+
| Section | Content |
|
|
54
|
+
|---|---|
|
|
55
|
+
| Ordered sections | Logical execution sequence with no gaps |
|
|
56
|
+
| Concrete tasks and subtasks | Specific, unambiguous actions |
|
|
57
|
+
| Acceptance criteria per section | How to know each section is done |
|
|
58
|
+
| Verification commands | Exact commands or manual checks per section |
|
|
59
|
+
| Cleanup steps | Temp files, stubs, or scaffolding to remove |
|
|
60
|
+
|
|
61
|
+
## Example
|
|
62
|
+
|
|
63
|
+
**Scenario:** Design for Redis token-bucket rate limiting has been approved.
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
Plan: docs/plans/2026-03-13-rate-limiting-implementation.md
|
|
67
|
+
|
|
68
|
+
## Section 1: Redis client setup
|
|
69
|
+
- Task: Install ioredis (npm install ioredis)
|
|
70
|
+
- Task: Create src/lib/redis-client.js with connection config from env
|
|
71
|
+
- Acceptance: `node -e "require('./src/lib/redis-client')"` exits 0
|
|
72
|
+
- Verification: `npm test -- --grep redis-client`
|
|
73
|
+
|
|
74
|
+
## Section 2: Rate limit middleware
|
|
75
|
+
- Task: Create src/middleware/rate-limit.js implementing token bucket
|
|
76
|
+
- Subtask: Read token count from Redis key `ratelimit:{token}`
|
|
77
|
+
- Subtask: Decrement and set TTL atomically via Lua script
|
|
78
|
+
- Subtask: Return 429 with Retry-After header when exhausted
|
|
79
|
+
- Acceptance: Unit tests cover allow / deny / TTL-reset scenarios
|
|
80
|
+
- Verification: `npm test -- --grep rate-limit`
|
|
81
|
+
|
|
82
|
+
## Section 3: Wire middleware to router
|
|
83
|
+
...
|
|
84
|
+
|
|
85
|
+
## Cleanup
|
|
86
|
+
- Remove TODO comment in src/api/router.js added in Section 3
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Rules
|
|
90
|
+
|
|
91
|
+
- Do not write repo-local task files outside `docs/plans/`.
|
|
92
|
+
- Do not rely on retired `run-*` workflow wrappers.
|
|
93
|
+
- Make tasks concrete enough that no invention is needed during execution.
|
|
94
|
+
|
|
95
|
+
## Integration
|
|
96
|
+
|
|
97
|
+
`wz:writing-plans` sits in the middle of the delivery chain:
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
wz:brainstorming → [operator approval] → wz:writing-plans → wz:tdd
|
|
101
|
+
→ wz:verification (after execution)
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Plans produced here are the direct input to the `execute` phase. The `wz:tdd` skill consumes the plan task-by-task, writing a failing test for each task before implementing it.
|