@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,592 @@
|
|
|
1
|
+
# CLI Pipeline Integration Design
|
|
2
|
+
|
|
3
|
+
> **Status:** Draft v4
|
|
4
|
+
> **Date:** 2026-03-15
|
|
5
|
+
> **Author:** Mohamed Abdallah
|
|
6
|
+
> **Scope:** Wire all 7 CLI command families into the agent pipeline so roles, workflows, skills, and hooks leverage indexing, recall, validation, capture, doctor, status, and export drift detection instead of raw file reads.
|
|
7
|
+
> **Review rounds:** 3 adversarial reviews completed. All critical, important, and most minor issues addressed.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Problem Statement
|
|
12
|
+
|
|
13
|
+
Wazir ships 7 CLI command families (validate, capture, index, recall, doctor, status, export) but the agent pipeline only uses 2 of them (validate partially in verifier, capture via hooks). Every role says "local file reads" and "targeted repo reads," burning full file contents into context when L0/L1 summaries exist. The index, recall, doctor, status, and export drift systems are fully implemented but disconnected from the pipeline.
|
|
14
|
+
|
|
15
|
+
## Goals
|
|
16
|
+
|
|
17
|
+
1. Every CLI feature is used by the pipeline at the appropriate checkpoint
|
|
18
|
+
2. Token consumption drops significantly on exploration-heavy phases via tiered recall
|
|
19
|
+
3. Full audit trail via run lifecycle capture across all pipeline phases
|
|
20
|
+
4. Broken repo state is caught before work begins (doctor) and after work completes (validate + export drift)
|
|
21
|
+
5. Session recovery is possible via status reads across compaction boundaries
|
|
22
|
+
6. Symbol-first exploration replaces grep-everything for debugging and review
|
|
23
|
+
|
|
24
|
+
## Non-Goals
|
|
25
|
+
|
|
26
|
+
- Requiring index for simple/small tasks — agent decides based on bootstrap guidance
|
|
27
|
+
- Breaking existing hook behavior — capture hooks stay as-is
|
|
28
|
+
- Adding new recall tiers — L0 and L1 are the only valid `--tier` values
|
|
29
|
+
- Concurrent session safety — v1 assumes single session per project (see Risks)
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Acknowledged CLI Changes
|
|
34
|
+
|
|
35
|
+
This design requires **five** minor CLI changes to existing command handlers:
|
|
36
|
+
|
|
37
|
+
1. **`tooling/src/checks/command-registry.js`** — Add `'wazir capture usage'` to `SUPPORTED_COMMAND_SUBJECTS`
|
|
38
|
+
2. **`tooling/src/capture/command.js` → `handleInit`** — Import and call `initUsage(runPaths, runId)` from `usage.js`; write run ID to `<state-root>/runs/latest` (plain text file)
|
|
39
|
+
3. **`tooling/src/capture/command.js` → `handleOutput`** — Import and call `recordCaptureSavings(runPaths, rawBytes, 0)` after `writeCaptureOutput` (summaryBytes is 0 because all bytes were routed to file instead of context)
|
|
40
|
+
4. **`tooling/src/capture/command.js` → `handleEvent`** — Import and call `recordPhaseUsage(runPaths, phase, data)` when event is `phase_enter` or `phase_exit`
|
|
41
|
+
5. **`tooling/src/capture/usage.js` → `recordPhaseUsage`** — Change `events_count` from replace to increment semantics: `existing.events_count += data.events_count ?? 0` (current code overwrites with `=`, which is a bug)
|
|
42
|
+
|
|
43
|
+
These are small, contained changes to existing handlers — not new commands or new CLI surfaces.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Design Decisions
|
|
48
|
+
|
|
49
|
+
| # | Question | Decision | Rationale |
|
|
50
|
+
|---|----------|----------|-----------|
|
|
51
|
+
| 1 | Session bootstrap strategy | **Hybrid** — hook injects index/doctor guidance; agent decides refresh/build | Fast for small tasks, ensures agent knows index exists |
|
|
52
|
+
| 2 | Recall tier defaults per role | **Role-based** — L0/L1/direct-read assigned per role | Matches how humans work: planner reads structure, executor reads code |
|
|
53
|
+
| 3 | Capture integration depth | **Full run lifecycle** — init, phase events, usage report | Complete audit trail, enables session recovery and token savings proof |
|
|
54
|
+
| 4 | Validation checkpoint placement | **Bookend + export drift** — doctor at start, validate pre+post execution, export check in verifier | Never start work in broken repo, never ship broken state |
|
|
55
|
+
| 5 | Symbol search integration | **Symbol-first** for debugging and review | Biggest token burners explore broadly; funnel search→L1→targeted read |
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 1. Session Start Hook — Hybrid Bootstrap
|
|
60
|
+
|
|
61
|
+
### Current Behavior
|
|
62
|
+
|
|
63
|
+
The session start hook is an **executable Node.js script** at `hooks/session-start` (not a markdown file). Its canonical definition lives at `hooks/definitions/session_start.yaml`. On trigger, it reads `skills/using-skills/SKILL.md`, wraps it in `<EXTREMELY_IMPORTANT>` tags, and writes to stdout for system context injection.
|
|
64
|
+
|
|
65
|
+
The hook fires on `startup|resume|clear|compact` events (configured in the export compiler at `tooling/src/export/compiler.js`, lines 99-116). The hook **cannot distinguish** which trigger event fired — it receives no trigger-type argument or environment variable.
|
|
66
|
+
|
|
67
|
+
### New Behavior
|
|
68
|
+
|
|
69
|
+
The hook script (`hooks/session-start`) is extended to also inject CLI bootstrap guidance into the system context. This is **not** running doctor/index directly in the hook — the hook injects instructions that tell the agent what to do after bootstrap.
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
hooks/session-start (executable Node.js script) outputs:
|
|
73
|
+
1. wz:using-skills injection → existing behavior
|
|
74
|
+
2. CLI bootstrap block:
|
|
75
|
+
- "Run `wazir doctor --json` to check repo health"
|
|
76
|
+
- "Run `wazir index refresh` to update the index (creates if missing)"
|
|
77
|
+
- "If index refresh reports no database, run `wazir index build && wazir index summarize --tier all`"
|
|
78
|
+
- "Check `<state-root>/runs/latest` for previous run ID"
|
|
79
|
+
- "If previous run is incomplete, resume it; otherwise run `wazir capture init --run <new-id> --phase clarify --status starting`"
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**Why `index refresh` instead of `index stats` for freshness:** `index stats` has no staleness metric — it returns counts and timestamps but does not compare against files on disk. `index refresh` is already incremental (hash-based delta), skips unchanged files, and is the correct tool for ensuring the index is current. No freshness heuristic needed.
|
|
83
|
+
|
|
84
|
+
### Run ID Strategy — Agent-Managed via `capture init` + `latest` File
|
|
85
|
+
|
|
86
|
+
The hook **cannot distinguish** `startup` from `compact`/`resume` triggers, so it cannot know whether to generate a new run ID or reuse an existing one. Therefore:
|
|
87
|
+
|
|
88
|
+
1. **The hook does NOT generate or manage run IDs.** It only injects guidance text.
|
|
89
|
+
2. **`capture init` creates the run and writes the run ID** to `<state-root>/runs/latest` (a plain text file containing just the run ID string).
|
|
90
|
+
3. **On compaction/resume:** The hook injects the same bootstrap guidance. The agent reads `<state-root>/runs/latest` to discover the current run ID. If `latest` exists and the run is incomplete, the agent resumes it.
|
|
91
|
+
4. **Agent context carries the run ID** between capture calls within a single session segment.
|
|
92
|
+
|
|
93
|
+
### `latest` File Implementation Detail
|
|
94
|
+
|
|
95
|
+
The `latest` file is written by `handleInit` in `tooling/src/capture/command.js`. Implementation:
|
|
96
|
+
|
|
97
|
+
```javascript
|
|
98
|
+
// In handleInit, after writeStatus and appendEvent:
|
|
99
|
+
const latestPath = path.join(stateRoot, 'runs', 'latest');
|
|
100
|
+
try {
|
|
101
|
+
fs.writeFileSync(latestPath, options.run, 'utf8');
|
|
102
|
+
} catch {
|
|
103
|
+
// Non-fatal: latest file is a convenience, not required for run operation
|
|
104
|
+
process.stderr.write('Warning: could not write latest run pointer\n');
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
This writes to `<state-root>/runs/latest` which is outside the `runPaths` structure (which is scoped to `<state-root>/runs/<runId>/`). The `stateRoot` is already available in `handleInit` via `resolveCaptureContext()`. No new store helper is needed — this is a direct `fs.writeFileSync` call.
|
|
109
|
+
|
|
110
|
+
**Collision safety:** The file is named `latest` (no timestamp prefix). A run ID could theoretically be "latest" but the format `run-YYYYMMDD-HHMMSS-XXXX` prevents this.
|
|
111
|
+
|
|
112
|
+
### Contract Update for `session_start.yaml`
|
|
113
|
+
|
|
114
|
+
The current definition has stale declarations that don't match what the hook actually does:
|
|
115
|
+
|
|
116
|
+
**Current (stale):**
|
|
117
|
+
```yaml
|
|
118
|
+
input_contract:
|
|
119
|
+
required:
|
|
120
|
+
- project_root
|
|
121
|
+
- run_id # ← hook never receives this
|
|
122
|
+
output_contract:
|
|
123
|
+
produces:
|
|
124
|
+
- status.json # ← hook never produces this
|
|
125
|
+
allowed_side_effects:
|
|
126
|
+
- create_status_file # ← hook never does this
|
|
127
|
+
- append_event # ← hook never does this
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
**Updated (accurate):**
|
|
131
|
+
```yaml
|
|
132
|
+
input_contract:
|
|
133
|
+
required:
|
|
134
|
+
- project_root
|
|
135
|
+
output_contract:
|
|
136
|
+
produces:
|
|
137
|
+
- skill_bootstrap_text
|
|
138
|
+
- cli_bootstrap_guidance
|
|
139
|
+
allowed_side_effects: [] # hook only writes to stdout, no side effects
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Changes:
|
|
143
|
+
- Remove `run_id` from `input_contract.required` (hook does not receive or generate run IDs)
|
|
144
|
+
- Replace `status.json` with `skill_bootstrap_text` and `cli_bootstrap_guidance` in `output_contract.produces`
|
|
145
|
+
- Empty `allowed_side_effects` (hook only writes to stdout — it has no side effects)
|
|
146
|
+
|
|
147
|
+
### Run ID Discovery Flow
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
Agent starts session:
|
|
151
|
+
1. Hook fires → injects bootstrap guidance (no run ID)
|
|
152
|
+
2. Agent checks: does <state-root>/runs/latest exist?
|
|
153
|
+
├─ Yes → read run ID from file
|
|
154
|
+
│ ├─ wazir status --run <id> --json → incomplete? → resume
|
|
155
|
+
│ └─ wazir status --run <id> --json → completed? → capture init (new run)
|
|
156
|
+
└─ No → capture init (new run, generates run ID, writes latest)
|
|
157
|
+
3. Agent uses run ID for all subsequent capture commands
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Fallback When Index Build/Summarize Fails
|
|
161
|
+
|
|
162
|
+
If `wazir index build` or `wazir index summarize` fails:
|
|
163
|
+
1. Agent logs the failure via `wazir capture event --run <id> --event index_build_failed --message "<error>"`
|
|
164
|
+
2. Agent falls back to direct file reads (the pre-existing behavior)
|
|
165
|
+
3. Roles that specify L0/L1 defaults treat them as **preferences**, not hard requirements — if recall fails, the role escalates to direct read
|
|
166
|
+
4. No retry — surface the failure to the user if it's a permissions/config issue
|
|
167
|
+
|
|
168
|
+
Note: `summarize` can throw if zero files are summarizable (all binary/skipped). This is treated the same as a build failure — fall back to direct reads.
|
|
169
|
+
|
|
170
|
+
### Rules
|
|
171
|
+
|
|
172
|
+
- Hook stays exit 0 (never blocks session start)
|
|
173
|
+
- Doctor/index guidance is injected text, not executed by the hook itself
|
|
174
|
+
- The agent decides whether to act on the guidance
|
|
175
|
+
- Hook behavior is identical on startup, resume, clear, and compact — it always injects the same guidance text (it cannot distinguish triggers)
|
|
176
|
+
- Run ID management is entirely the agent's responsibility (via `capture init` + `latest` file)
|
|
177
|
+
|
|
178
|
+
### Files Modified
|
|
179
|
+
|
|
180
|
+
- `hooks/session-start` — extend the executable script to inject CLI bootstrap guidance block
|
|
181
|
+
- `hooks/definitions/session_start.yaml` — full contract cleanup: remove `run_id` from input, remove stale `status.json` output and `allowed_side_effects`, add accurate output declarations
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## 2. Role-Based Recall Tier Defaults
|
|
186
|
+
|
|
187
|
+
### Tier Definitions
|
|
188
|
+
|
|
189
|
+
| Tier | CLI Flag | Size | Content |
|
|
190
|
+
|------|----------|------|---------|
|
|
191
|
+
| **L0** | `--tier L0` | ~100 tokens | One-line summary |
|
|
192
|
+
| **L1** | `--tier L1` | ~500-2k tokens | Imports + all symbol signatures |
|
|
193
|
+
| **Direct read** | _(no recall, use Read tool)_ | Full content | Raw file — used for editing/verifying |
|
|
194
|
+
|
|
195
|
+
Note: There is no `--tier L2` flag. "Direct read" means using the host's native file read tool (Read, cat, etc.), not a recall command.
|
|
196
|
+
|
|
197
|
+
### Role Assignments
|
|
198
|
+
|
|
199
|
+
| Role | Default Approach | Rationale |
|
|
200
|
+
|------|-----------------|-----------|
|
|
201
|
+
| Clarifier | Recall L1 | Needs structure, not implementation detail |
|
|
202
|
+
| Researcher | Recall L1 | Explores broadly, needs signatures and outlines |
|
|
203
|
+
| Specifier | Recall L1 | References existing code structure for spec constraints |
|
|
204
|
+
| Content-Author | Recall L1 | Needs to understand what exists, not edit it |
|
|
205
|
+
| Designer | Recall L1 | References code structure for design alignment |
|
|
206
|
+
| Planner | Recall L1 | Reads structure to plan tasks, not every line |
|
|
207
|
+
| Executor | Direct read | Actively editing code — needs full files |
|
|
208
|
+
| Verifier | Direct read | Running and inspecting actual code |
|
|
209
|
+
| Reviewer | Recall L1 → direct read on demand | Starts with structure, drills into flagged issues |
|
|
210
|
+
| Learner | Recall L0 | High-level patterns only — minimal context cost |
|
|
211
|
+
|
|
212
|
+
### Prerequisite: Summaries Must Exist
|
|
213
|
+
|
|
214
|
+
Roles that default to L0 or L1 require summaries to exist. The session start bootstrap (Section 1) ensures this by instructing the agent to run `wazir index build && wazir index summarize --tier all` when no index exists. If the agent skips indexing (small task, agent's decision), roles fall back to direct reads — the tier default is a preference, not a hard gate.
|
|
215
|
+
|
|
216
|
+
**Graceful degradation chain:** L0 fails → try L1 → L1 fails → direct file read. Every role contract documents this chain explicitly.
|
|
217
|
+
|
|
218
|
+
### Escalation Rule
|
|
219
|
+
|
|
220
|
+
Any role CAN escalate to a higher tier when justified. The default is a starting point, not a cage. The role must start at its default before going deeper.
|
|
221
|
+
|
|
222
|
+
### Contract Addition — L1 Roles (clarifier, researcher, specifier, content-author, designer, planner)
|
|
223
|
+
|
|
224
|
+
Added as a new section after `## Allowed Tools`:
|
|
225
|
+
|
|
226
|
+
```markdown
|
|
227
|
+
## Context retrieval
|
|
228
|
+
|
|
229
|
+
Default approach: recall L1 (structural summaries)
|
|
230
|
+
- Use `wazir index search-symbols <query>` to locate relevant code
|
|
231
|
+
- Use `wazir recall file <path> --tier L1` for structural understanding
|
|
232
|
+
- Use `wazir recall symbol <name-or-id> --tier L1` for symbol-level detail
|
|
233
|
+
- Escalate to direct file read only when the summary is insufficient for the task
|
|
234
|
+
- If recall fails (no index, no summaries), fall back to direct file reads
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
Also add to `## Allowed Tools`: `- Wazir CLI recall and index commands (see Context retrieval)`
|
|
238
|
+
|
|
239
|
+
### Contract Addition — Direct Read Roles (executor, verifier)
|
|
240
|
+
|
|
241
|
+
```markdown
|
|
242
|
+
## Context retrieval
|
|
243
|
+
|
|
244
|
+
Default approach: direct file read (full content)
|
|
245
|
+
- Use `wazir index search-symbols <query>` to locate relevant code before reading
|
|
246
|
+
- Read full files directly when editing or verifying
|
|
247
|
+
- Use `wazir recall file <path> --tier L1` for files you need to understand but not modify
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### Contract Addition — Reviewer (L1 → direct read)
|
|
251
|
+
|
|
252
|
+
```markdown
|
|
253
|
+
## Context retrieval
|
|
254
|
+
|
|
255
|
+
Default approach: recall L1, escalate to direct read for flagged issues
|
|
256
|
+
- Read the diff first (primary input)
|
|
257
|
+
- Use `wazir index search-symbols <name>` to locate related code
|
|
258
|
+
- Use `wazir recall symbol <name-or-id> --tier L1` to check structural alignment
|
|
259
|
+
- Escalate to direct file read only for: logic errors, missing edge cases, integration concerns
|
|
260
|
+
- If recall fails, fall back to direct file reads
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
### Contract Addition — Learner (L0)
|
|
264
|
+
|
|
265
|
+
```markdown
|
|
266
|
+
## Context retrieval
|
|
267
|
+
|
|
268
|
+
Default approach: recall L0 (one-line summaries)
|
|
269
|
+
- Use `wazir recall file <path> --tier L0` for high-level understanding
|
|
270
|
+
- Use `wazir index search-symbols <query>` to discover relevant patterns
|
|
271
|
+
- Escalate: L0 fails → try L1 → L1 fails → direct file read
|
|
272
|
+
- If recall fails, fall back to direct file reads
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
### Files Modified
|
|
276
|
+
|
|
277
|
+
- `roles/clarifier.md` — add context retrieval section (L1) + update Allowed Tools
|
|
278
|
+
- `roles/researcher.md` — add context retrieval section (L1) + update Allowed Tools
|
|
279
|
+
- `roles/specifier.md` — add context retrieval section (L1) + update Allowed Tools
|
|
280
|
+
- `roles/content-author.md` — add context retrieval section (L1) + update Allowed Tools
|
|
281
|
+
- `roles/designer.md` — add context retrieval section (L1) + update Allowed Tools
|
|
282
|
+
- `roles/planner.md` — add context retrieval section (L1) + update Allowed Tools
|
|
283
|
+
- `roles/executor.md` — add context retrieval section (direct read) + update Allowed Tools
|
|
284
|
+
- `roles/verifier.md` — add context retrieval section (direct read) + update Allowed Tools
|
|
285
|
+
- `roles/reviewer.md` — add context retrieval section (L1→direct read) + update Allowed Tools
|
|
286
|
+
- `roles/learner.md` — add context retrieval section (L0) + update Allowed Tools
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
## 3. Full Run Lifecycle Capture
|
|
291
|
+
|
|
292
|
+
### Current Behavior
|
|
293
|
+
|
|
294
|
+
Hooks fire `capture route/output/event` for tool-level observability. No phase-level tracking. No run initialization from the pipeline. No usage report at session end.
|
|
295
|
+
|
|
296
|
+
### New Behavior
|
|
297
|
+
|
|
298
|
+
```
|
|
299
|
+
Session start (agent executes after reading bootstrap guidance):
|
|
300
|
+
wazir capture init --run <generated-id> --phase clarify --status starting
|
|
301
|
+
(capture init now also: calls initUsage(), writes <state-root>/runs/latest)
|
|
302
|
+
|
|
303
|
+
Phase transition (agent executes at each phase boundary):
|
|
304
|
+
wazir capture event --run <id> --event phase_enter --phase <name> --status in_progress
|
|
305
|
+
... phase work ...
|
|
306
|
+
wazir capture event --run <id> --event phase_exit --phase <name> --status completed
|
|
307
|
+
|
|
308
|
+
Gate decision (agent executes at approval gates):
|
|
309
|
+
wazir capture event --run <id> --event gate_approved --phase <name>
|
|
310
|
+
OR
|
|
311
|
+
wazir capture event --run <id> --event gate_rejected --phase <name> --message "reason"
|
|
312
|
+
|
|
313
|
+
Loop iteration (agent executes when phase loops back):
|
|
314
|
+
wazir capture event --run <id> --event phase_loop --phase <name> --loop-count N
|
|
315
|
+
|
|
316
|
+
Session end (agent executes before final summary):
|
|
317
|
+
wazir capture usage --run <id> → token savings report
|
|
318
|
+
wazir capture summary --run <id> → final summary
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
### Who Calls What
|
|
322
|
+
|
|
323
|
+
- **`capture init` creates:** run directory, `status.json`, `events.ndjson`, `usage.json` (new: via `initUsage()`), `<state-root>/runs/latest` file (new)
|
|
324
|
+
- **`capture output` records:** capture routing savings via `recordCaptureSavings(runPaths, rawBytes, 0)` (new) — `summaryBytes` is 0 because all output bytes are routed to file instead of injected into agent context
|
|
325
|
+
- **`capture event` records:** phase usage via `recordPhaseUsage(runPaths, phase, data)` when event is `phase_enter` or `phase_exit` (new)
|
|
326
|
+
- **Agent calls:** all `capture` commands via workflow instructions
|
|
327
|
+
- **Hooks call:** tool-level capture (route/output) — existing behavior, unchanged
|
|
328
|
+
|
|
329
|
+
### Usage Data Population
|
|
330
|
+
|
|
331
|
+
**Problem identified in review:** `usage.json` is never created by `capture init`, and `recordCaptureSavings`/`recordPhaseUsage` are never called by any handler. These are dead code.
|
|
332
|
+
|
|
333
|
+
**Fix (five CLI changes listed in Acknowledged CLI Changes section):**
|
|
334
|
+
|
|
335
|
+
1. `handleInit` → call `initUsage(runPaths, runId)` to create `usage.json` at run start
|
|
336
|
+
2. `handleOutput` → call `recordCaptureSavings(runPaths, rawBytes, 0)` after writing capture file
|
|
337
|
+
- `rawBytes` = `Buffer.byteLength(output)` (already computed)
|
|
338
|
+
- `summaryBytes` = `0` (the output was routed to file, so zero bytes went to context)
|
|
339
|
+
3. `handleEvent` → call `recordPhaseUsage(runPaths, phase, {events_count: 1})` for `phase_enter`/`phase_exit` events
|
|
340
|
+
|
|
341
|
+
**Bug fix needed:** `recordPhaseUsage` in `usage.js` line 129 uses replace semantics (`existing.events_count = data.events_count ?? existing.events_count`). This must change to increment semantics (`existing.events_count += data.events_count ?? 0`) or the phase event count will always show 1.
|
|
342
|
+
|
|
343
|
+
**What the usage report tracks:** Capture routing savings — how many bytes were routed to files instead of context. It does NOT track recall tier savings (tokens saved by using L1 instead of direct read). That would require recall-level instrumentation, which is out of scope.
|
|
344
|
+
|
|
345
|
+
### Session Recovery
|
|
346
|
+
|
|
347
|
+
When a session starts and the bootstrap guidance is injected:
|
|
348
|
+
|
|
349
|
+
1. Agent checks: does `<state-root>/runs/latest` exist?
|
|
350
|
+
2. If yes, reads the run ID and runs `wazir status --run <id> --json`
|
|
351
|
+
3. If status is not "completed": agent resumes from the last completed phase
|
|
352
|
+
4. If status is "completed" or file doesn't exist: agent runs `capture init` to start fresh
|
|
353
|
+
|
|
354
|
+
### Workflow File Changes
|
|
355
|
+
|
|
356
|
+
Each workflow markdown file gets two new sections. **Placement:** `## Phase entry` goes immediately after `## Purpose` (first thing the agent sees when entering the phase). `## Phase exit` goes immediately before `## Failure Conditions`.
|
|
357
|
+
|
|
358
|
+
```markdown
|
|
359
|
+
## Phase entry
|
|
360
|
+
|
|
361
|
+
On entering this phase, run:
|
|
362
|
+
`wazir capture event --run <run-id> --event phase_enter --phase <phase-name> --status in_progress`
|
|
363
|
+
|
|
364
|
+
## Phase exit
|
|
365
|
+
|
|
366
|
+
On completing this phase, run:
|
|
367
|
+
`wazir capture event --run <run-id> --event phase_exit --phase <phase-name> --status completed`
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
For gate workflows (spec-challenge, design-review, plan-review), add `## Gate decision` immediately after the existing `## Approval Gate`:
|
|
371
|
+
|
|
372
|
+
```markdown
|
|
373
|
+
## Gate decision
|
|
374
|
+
|
|
375
|
+
On approval: `wazir capture event --run <run-id> --event gate_approved --phase <phase-name>`
|
|
376
|
+
On rejection: `wazir capture event --run <run-id> --event gate_rejected --phase <phase-name> --message "<reason>"`
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
### Workflow Count and Export Drift
|
|
380
|
+
|
|
381
|
+
There are **16 files** in `workflows/`: 14 declared in manifest, `run-audit.md` (undeclared), and `README.md`.
|
|
382
|
+
|
|
383
|
+
- **14 declared workflows** get capture events AND cause export drift (they are hashed by the export compiler)
|
|
384
|
+
- **`run-audit.md`** gets capture events but does NOT cause export drift (undeclared in manifest, not hashed)
|
|
385
|
+
- **`README.md`** is excluded — it is not a workflow
|
|
386
|
+
|
|
387
|
+
Total: 15 workflow files modified (14 + run-audit). Only 14 trigger export drift.
|
|
388
|
+
|
|
389
|
+
**Note on `run-audit.md`:** This workflow is not exported to host packages, so agents only see its instructions if they read the file directly from the repo. Adding capture events to it is still useful for projects that use it directly. Whether to add it to the manifest is a separate concern.
|
|
390
|
+
|
|
391
|
+
### Boilerplate Maintenance
|
|
392
|
+
|
|
393
|
+
Adding capture instructions to all 15 workflows creates ~120 lines of near-identical boilerplate. For v1 we inline the instructions to keep workflows self-contained. If maintenance becomes a burden (e.g., capture command interface changes), extract to a shared reference doc (`docs/reference/capture-protocol.md`) with workflows referencing it.
|
|
394
|
+
|
|
395
|
+
### Files Modified
|
|
396
|
+
|
|
397
|
+
- 15 `workflows/*.md` files (excluding README.md) — add phase entry/exit capture instructions
|
|
398
|
+
- `tooling/src/checks/command-registry.js` — add `capture usage` entry
|
|
399
|
+
- `tooling/src/capture/command.js` — `handleInit`: call `initUsage()`, write `latest` file; `handleOutput`: call `recordCaptureSavings()`; `handleEvent`: call `recordPhaseUsage()`
|
|
400
|
+
- `tooling/src/capture/usage.js` — fix `recordPhaseUsage` to use increment instead of replace
|
|
401
|
+
|
|
402
|
+
---
|
|
403
|
+
|
|
404
|
+
## 4. Bookend Validation + Export Drift
|
|
405
|
+
|
|
406
|
+
### Checkpoint Map
|
|
407
|
+
|
|
408
|
+
```
|
|
409
|
+
Session start (agent, guided by hook bootstrap):
|
|
410
|
+
└─ wazir doctor → repo health check
|
|
411
|
+
|
|
412
|
+
Pre-execution (execute workflow precondition — agent checks before implementing):
|
|
413
|
+
├─ wazir validate manifest → schema still valid
|
|
414
|
+
└─ wazir validate hooks → hook contracts intact
|
|
415
|
+
|
|
416
|
+
Post-execution (verifier role — extends existing validation surface):
|
|
417
|
+
├─ wazir validate manifest → still valid after changes
|
|
418
|
+
├─ wazir validate hooks → hooks not broken by changes
|
|
419
|
+
├─ wazir validate docs → no doc drift introduced
|
|
420
|
+
├─ wazir validate brand → naming conventions held
|
|
421
|
+
├─ wazir validate runtime → no forbidden runtime surfaces
|
|
422
|
+
├─ wazir validate branches → (existing)
|
|
423
|
+
├─ wazir validate commits → (existing)
|
|
424
|
+
├─ wazir validate changelog → (existing)
|
|
425
|
+
└─ wazir export --check → export drift detection
|
|
426
|
+
└─ if drift → executor runs `wazir export build` → re-verify
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
### Pre-Execution Validation Is a Precondition, Not a Gate
|
|
430
|
+
|
|
431
|
+
The pre-execution checks are instructions in the execute workflow that the agent runs before implementing. If validation fails:
|
|
432
|
+
1. Agent surfaces the failure to the user
|
|
433
|
+
2. Agent does NOT proceed with implementation
|
|
434
|
+
3. User resolves the issue (or instructs agent to fix it)
|
|
435
|
+
4. This is NOT an approval gate — it does not require explicit "approve" action, just passing checks
|
|
436
|
+
|
|
437
|
+
### Export Drift Fix Loop
|
|
438
|
+
|
|
439
|
+
If `wazir export --check` detects drift in verifier:
|
|
440
|
+
1. Verifier reports drift as a verification finding
|
|
441
|
+
2. Executor runs `wazir export build` to regenerate
|
|
442
|
+
3. Verifier re-runs `export --check` to confirm
|
|
443
|
+
4. If `export build` itself fails — verifier reports as a blocking failure, escalates to user
|
|
444
|
+
5. Maximum 1 export rebuild attempt per verification cycle (enforced by instruction, not loop-cap-guard)
|
|
445
|
+
6. If rebuilt exports cause other validation failures (docs, brand) — verifier reports all failures together, executor addresses them, then re-verify
|
|
446
|
+
|
|
447
|
+
### Failure Behavior
|
|
448
|
+
|
|
449
|
+
- Doctor failure at session start: agent surfaces to user, proceeds with caution (not blocked)
|
|
450
|
+
- Pre-execution validation failure: agent surfaces to user, blocks execution until resolved
|
|
451
|
+
- Post-execution validation failure: verifier reports as verification failure, loops back to executor
|
|
452
|
+
- Export drift: single rebuild attempt, then escalate if still failing
|
|
453
|
+
|
|
454
|
+
### Files Modified
|
|
455
|
+
|
|
456
|
+
- `workflows/execute.md` — add pre-execution validation preconditions
|
|
457
|
+
- `roles/verifier.md` — extend validation surface with `export --check`
|
|
458
|
+
|
|
459
|
+
---
|
|
460
|
+
|
|
461
|
+
## 5. Symbol-First Exploration for Debugging & Review
|
|
462
|
+
|
|
463
|
+
### wz:debugging — OBSERVE Phase Rewrite
|
|
464
|
+
|
|
465
|
+
Current: grep/read files broadly, form hypothesis from full content.
|
|
466
|
+
|
|
467
|
+
New:
|
|
468
|
+
|
|
469
|
+
```
|
|
470
|
+
OBSERVE:
|
|
471
|
+
1. wazir index search-symbols <suspected-area>
|
|
472
|
+
→ find relevant symbols by name
|
|
473
|
+
2. wazir recall symbol <name-or-id> --tier L1
|
|
474
|
+
→ understand structure (signature, JSDoc, imports)
|
|
475
|
+
3. Form hypothesis based on L1 summaries
|
|
476
|
+
4. wazir recall file <path> --start-line N --end-line M
|
|
477
|
+
→ read ONLY the suspect code slice
|
|
478
|
+
5. Escalate to full file read only if the bug cannot be localized from slices
|
|
479
|
+
6. If recall fails (no index/summaries), fall back to direct file reads — the generic
|
|
480
|
+
OBSERVE methodology (read files, inspect state, gather evidence) still applies
|
|
481
|
+
```
|
|
482
|
+
|
|
483
|
+
### Character Change Acknowledgment
|
|
484
|
+
|
|
485
|
+
This rewrite shifts `wz:debugging` from a generic, host-neutral debugging methodology to a Wazir-CLI-aware procedure. The generic 4-step loop (Observe → Hypothesize → Test → Fix) is preserved — only the OBSERVE implementation details change. Step 6 ensures the skill degrades gracefully to its original generic behavior when the index is unavailable.
|
|
486
|
+
|
|
487
|
+
### Reviewer — Exploration Rewrite
|
|
488
|
+
|
|
489
|
+
Current: read full files referenced in diff.
|
|
490
|
+
|
|
491
|
+
New:
|
|
492
|
+
|
|
493
|
+
```
|
|
494
|
+
1. Read the diff (unchanged — this is the primary input)
|
|
495
|
+
2. For flagged areas:
|
|
496
|
+
wazir index search-symbols <name>
|
|
497
|
+
→ locate related code and callers
|
|
498
|
+
3. wazir recall symbol <name-or-id> --tier L1
|
|
499
|
+
→ check if change aligns with existing structure
|
|
500
|
+
4. Escalate to direct file read ONLY for:
|
|
501
|
+
- Logic errors that need full function context
|
|
502
|
+
- Missing edge cases that need surrounding code
|
|
503
|
+
- Integration concerns that need call-site context
|
|
504
|
+
5. If recall fails, fall back to direct file reads
|
|
505
|
+
```
|
|
506
|
+
|
|
507
|
+
### Files Modified
|
|
508
|
+
|
|
509
|
+
- `skills/debugging/SKILL.md` — rewrite OBSERVE phase with symbol-first protocol + fallback
|
|
510
|
+
- `roles/reviewer.md` — add symbol-first exploration protocol (combined with Section 2 context retrieval)
|
|
511
|
+
|
|
512
|
+
---
|
|
513
|
+
|
|
514
|
+
## 6. scan-project Skill Integration
|
|
515
|
+
|
|
516
|
+
### Current Behavior
|
|
517
|
+
|
|
518
|
+
`skills/scan-project/SKILL.md` defines what to inspect (manifests, docs, tests, `input/`) and what to produce (a project profile). It does not prescribe specific tools.
|
|
519
|
+
|
|
520
|
+
### New Behavior
|
|
521
|
+
|
|
522
|
+
After the initial scan, `scan-project` instructs the agent to:
|
|
523
|
+
- Run `wazir index build && wazir index summarize --tier all` if no index exists
|
|
524
|
+
- Run `wazir index refresh` if an index already exists
|
|
525
|
+
- Include index stats (file count, symbol count, outline count) in the project profile output
|
|
526
|
+
|
|
527
|
+
### Files Modified
|
|
528
|
+
|
|
529
|
+
- `skills/scan-project/SKILL.md` — add index build/refresh step after scan
|
|
530
|
+
|
|
531
|
+
---
|
|
532
|
+
|
|
533
|
+
## Implementation Order
|
|
534
|
+
|
|
535
|
+
| Order | Change | Risk | Dependency | Export Drift? |
|
|
536
|
+
|-------|--------|------|------------|---------------|
|
|
537
|
+
| 1 | `tooling/src/checks/command-registry.js` (add `capture usage`) | Low | None | No |
|
|
538
|
+
| 2 | `tooling/src/capture/command.js` (initUsage + latest + recordCaptureSavings + recordPhaseUsage) | Low | None | No |
|
|
539
|
+
| 3 | `tooling/src/capture/usage.js` (fix increment bug) | Low | None | No |
|
|
540
|
+
| 4 | `hooks/session-start` + `hooks/definitions/session_start.yaml` (bootstrap guidance + contract cleanup) | Low | None | **Yes — hook defs are hashed** |
|
|
541
|
+
| 5 | Role context retrieval sections (all 10 roles) + Allowed Tools updates | Low | Step 4 ensures bootstrap guidance exists | **Yes** |
|
|
542
|
+
| 6 | Workflow capture events (14 declared + run-audit.md) | Low | Step 2 ensures `capture init` works | **Yes (14 declared only)** |
|
|
543
|
+
| 7 | `roles/verifier.md` validation extension + export drift | Medium | Steps 5-6 complete | **Yes** |
|
|
544
|
+
| 8 | `workflows/execute.md` preconditions | Medium | Step 7 (verifier handles failures) | **Yes** |
|
|
545
|
+
| 9 | `skills/debugging/SKILL.md` OBSERVE rewrite | Medium | Index CLI exists (pre-existing) | No (skills not hashed) |
|
|
546
|
+
| 10 | `skills/scan-project/SKILL.md` index integration | Low | Index CLI exists (pre-existing) | No (skills not hashed) |
|
|
547
|
+
|
|
548
|
+
**Export drift note:** Steps 4-8 modify files hashed in export manifests. `wazir export build` must run after each step or be batched.
|
|
549
|
+
|
|
550
|
+
**Recommended batching:**
|
|
551
|
+
- **Batch A (CLI fixes):** Steps 1-3 in one commit — no export drift
|
|
552
|
+
- **Batch B (pipeline wiring):** Steps 4-8 in one commit with `wazir export build` at the end
|
|
553
|
+
- **Batch C (skills):** Steps 9-10 in one commit — no export drift
|
|
554
|
+
|
|
555
|
+
---
|
|
556
|
+
|
|
557
|
+
## Risks and Mitigations
|
|
558
|
+
|
|
559
|
+
| Risk | Impact | Mitigation |
|
|
560
|
+
|------|--------|------------|
|
|
561
|
+
| Index build is slow on large repos | Session start delay | Hybrid: agent decides based on bootstrap guidance; `index refresh` is incremental |
|
|
562
|
+
| Stale L1 summaries mislead agent | Wrong assumptions | Recall returns `fresh: false` flag; agent re-summarizes or reads directly |
|
|
563
|
+
| No index/summaries available | Recall commands fail | Every role and skill has explicit fallback chain: L0 → L1 → direct read |
|
|
564
|
+
| `summarize` throws on zero files | Index build appears to succeed but summaries fail | Treated same as build failure: fall back to direct reads |
|
|
565
|
+
| Capture events add context noise | Token overhead | Events are fire-and-forget CLI calls; agent discards stdout |
|
|
566
|
+
| Export drift during multi-step implementation | CI failures between steps | Batch steps 4-8 into single commit with `export build` |
|
|
567
|
+
| Export drift fix loop in verifier | Potential infinite loop | Max 1 rebuild attempt per verification cycle, then escalate |
|
|
568
|
+
| `run-audit.md` undeclared in manifest | Not exported to hosts | Add capture events anyway; agents reading it directly still benefit |
|
|
569
|
+
| Hook cannot distinguish startup vs compact | Could regenerate run ID | Agent reads `latest` file to discover existing run; hook is stateless |
|
|
570
|
+
| `usage.json` never populated | Empty usage report | Fixed by CLI changes 2-5 (initUsage + recording calls + increment fix) |
|
|
571
|
+
| Concurrent sessions on same project | `latest` file race, event interleaving | v1 assumes single session per project; future: PID-based lock or session discriminator in run ID |
|
|
572
|
+
|
|
573
|
+
---
|
|
574
|
+
|
|
575
|
+
## Success Criteria
|
|
576
|
+
|
|
577
|
+
1. `wazir doctor` guidance appears in session start bootstrap
|
|
578
|
+
2. Index exists and is queryable before any exploration phase (when agent follows bootstrap)
|
|
579
|
+
3. All 15 workflow files have capture event instructions (14 declared + run-audit)
|
|
580
|
+
4. `wazir capture usage` produces a capture routing savings report at session end (tracks file-vs-context routing, not recall tier savings)
|
|
581
|
+
5. Roles use their assigned default tier before escalating, with explicit fallback chain
|
|
582
|
+
6. `wazir validate` + `export --check` run in verifier phase
|
|
583
|
+
7. `wz:debugging` OBSERVE phase uses symbol search before file reads (with fallback to generic methodology)
|
|
584
|
+
8. Reviewer uses L1 recall before reading full files (with fallback)
|
|
585
|
+
9. Run ID persists across compaction via `<state-root>/runs/latest` file
|
|
586
|
+
10. No regression in existing hook behavior (capture, protected paths, loop caps)
|
|
587
|
+
11. `wazir export --check` passes after all changes are implemented
|
|
588
|
+
12. `capture usage` is registered in command registry
|
|
589
|
+
13. `capture init` creates `usage.json` and writes `latest` file
|
|
590
|
+
14. `session_start.yaml` contract is fully cleaned up (stale outputs and side effects removed)
|
|
591
|
+
15. `recordPhaseUsage` uses increment semantics for `events_count`
|
|
592
|
+
16. Role `## Allowed Tools` sections mention CLI recall/index commands
|