@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,160 @@
|
|
|
1
|
+
# specify
|
|
2
|
+
|
|
3
|
+
**Phase 3 — The contract that every phase downstream will be judged against.**
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+

|
|
7
|
+

|
|
8
|
+

|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## One-Line Purpose
|
|
13
|
+
|
|
14
|
+
Turn clarified scope and source-backed research into a measurable spec: explicit acceptance criteria, named assumptions, and documented non-goals that all downstream phases treat as law.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Pipeline Position
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
DISCOVER
|
|
22
|
+
│
|
|
23
|
+
▼
|
|
24
|
+
┌─────────┐
|
|
25
|
+
│ SPECIFY │ ◄── YOU ARE HERE
|
|
26
|
+
└─────────┘
|
|
27
|
+
│
|
|
28
|
+
▼
|
|
29
|
+
SPEC-CHALLENGE ★ gate
|
|
30
|
+
│
|
|
31
|
+
▼
|
|
32
|
+
DESIGN / PLAN ...
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Role Responsible
|
|
38
|
+
|
|
39
|
+
`specifier`
|
|
40
|
+
|
|
41
|
+
The specifier transforms research into requirements. It does not invent requirements from nothing — it synthesizes what clarification identified and what research confirmed into a form that can be tested, challenged, and implemented. A specifier who writes acceptance criteria that cannot be verified has produced a spec in name only.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Trigger
|
|
46
|
+
|
|
47
|
+
Both of the following artifacts are available in run state:
|
|
48
|
+
|
|
49
|
+
- Clarification artifact (complete, no unresolved blocking questions)
|
|
50
|
+
- Research artifact (all findings cited; no unsupported hypotheses flowing forward)
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Steps
|
|
55
|
+
|
|
56
|
+
1. **Load clarification and research artifacts.** The spec is synthesized from these two sources. Do not introduce requirements not traceable to either.
|
|
57
|
+
|
|
58
|
+
2. **Write the problem statement.** One paragraph. What is being built and why. Crisp enough that a reviewer who has read neither brief nor research can orient.
|
|
59
|
+
|
|
60
|
+
3. **Write acceptance criteria.** Each criterion must be:
|
|
61
|
+
- Testable (can be confirmed true or false with a concrete action)
|
|
62
|
+
- Specific (no weasel words like "should feel fast" or "works on mobile")
|
|
63
|
+
- Bounded (scoped to this work, not aspirationally future)
|
|
64
|
+
|
|
65
|
+
4. **Document assumptions.** Explicitly record every assumption the spec depends on. If the spec is later found to be wrong because an assumption was wrong, the assumption list is the audit trail.
|
|
66
|
+
|
|
67
|
+
5. **Document non-goals.** State explicitly what this work does NOT do. Non-goals prevent scope creep in planning and execution.
|
|
68
|
+
|
|
69
|
+
6. **Note open items.** If any advisory question from clarification was not resolved by research, document it here as a spec assumption or escalate to the operator.
|
|
70
|
+
|
|
71
|
+
7. **Produce the spec artifact.** One document containing problem statement, acceptance criteria, assumptions, and non-goals.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Input Artifacts
|
|
76
|
+
|
|
77
|
+
| Artifact | Location | Required |
|
|
78
|
+
|----------|----------|----------|
|
|
79
|
+
| Clarification artifact | Run state | Yes |
|
|
80
|
+
| Research artifact | Run state | Yes |
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Output Artifacts
|
|
85
|
+
|
|
86
|
+
| Artifact | Description |
|
|
87
|
+
|----------|-------------|
|
|
88
|
+
| Spec artifact | Problem statement, acceptance criteria, assumptions, non-goals |
|
|
89
|
+
| Acceptance criteria | Flat testable list extracted from spec (used by verifier) |
|
|
90
|
+
| Assumptions list | Named assumptions the spec depends on |
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Approval Gate
|
|
95
|
+
|
|
96
|
+
> [!IMPORTANT]
|
|
97
|
+
> **Explicit human approval is required before planning begins.** The spec is the contract. Once approved, the planner treats it as immutable. Changes to the spec after approval invalidate the plan and require a new planning run.
|
|
98
|
+
|
|
99
|
+
The approval gate is hard. An unapproved spec cannot be handed to the planner. The `spec-challenge` workflow runs before final approval to adversarially test the spec — do not conflate spec-challenge with final approval. Both must occur.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Example Run
|
|
104
|
+
|
|
105
|
+
**Research artifact inputs (summary):**
|
|
106
|
+
- CSS custom properties pattern established in codebase
|
|
107
|
+
- `useLocalStorage` hook already exists for persistence
|
|
108
|
+
- Mobile breakpoint at 768px
|
|
109
|
+
- No brand color constraints found (assumption required)
|
|
110
|
+
|
|
111
|
+
**Spec artifact produced:**
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
## Problem Statement
|
|
115
|
+
Add a dark mode color scheme to the main dashboard (/dashboard). Users should be
|
|
116
|
+
able to toggle between light and dark mode. Preference persists across sessions
|
|
117
|
+
via localStorage. Dark mode must render correctly at the 768px mobile breakpoint.
|
|
118
|
+
|
|
119
|
+
## Acceptance Criteria
|
|
120
|
+
AC-1: A toggle control is visible on the /dashboard page at all viewport widths.
|
|
121
|
+
AC-2: Activating the toggle switches the page to a dark color scheme within one
|
|
122
|
+
render cycle (no page reload).
|
|
123
|
+
AC-3: The dark mode preference survives a page reload (localStorage persistence).
|
|
124
|
+
AC-4: At 768px viewport width, the toggle is accessible and the dark scheme
|
|
125
|
+
renders without layout breakage.
|
|
126
|
+
AC-5: Toggling from dark back to light restores the original light scheme.
|
|
127
|
+
AC-6: No existing light mode styles are broken by the dark mode implementation.
|
|
128
|
+
|
|
129
|
+
## Assumptions
|
|
130
|
+
A-1: Dark color palette will be defined by the designer; no pre-existing brand
|
|
131
|
+
dark palette doc exists.
|
|
132
|
+
A-2: Server-side preference sync is out of scope for this work.
|
|
133
|
+
A-3: Admin panel (/admin) is not in scope.
|
|
134
|
+
|
|
135
|
+
## Non-Goals
|
|
136
|
+
- OS-level prefers-color-scheme auto-detection (future work)
|
|
137
|
+
- Dark mode for any page other than /dashboard
|
|
138
|
+
- Account-level server-side preference storage
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Common Mistakes
|
|
144
|
+
|
|
145
|
+
| Mistake | Impact | Prevention |
|
|
146
|
+
|---------|--------|------------|
|
|
147
|
+
| Writing untestable acceptance criteria | Verifier cannot confirm completion | Each AC must be verifiable with a concrete action and observable outcome |
|
|
148
|
+
| Introducing requirements not in clarification or research | Scope creep before planning even starts | Trace every AC to a clarification item or research finding |
|
|
149
|
+
| Omitting non-goals | Executor and planner add scope during execution | Name non-goals explicitly; "we considered X and excluded it" |
|
|
150
|
+
| Writing assumptions as facts | When an assumption is wrong, there is no audit trail | Mark every assumption clearly as an assumption |
|
|
151
|
+
| Merging spec with design decisions | Spec is what; design is how | AC-6 above is correct ("no existing styles broken"); "use CSS variables" belongs in the plan |
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Related
|
|
156
|
+
|
|
157
|
+
- [Overview — All Workflows](README.md)
|
|
158
|
+
- [Previous: discover](discover.md)
|
|
159
|
+
- [Next: spec-challenge](spec-challenge.md)
|
|
160
|
+
- [Roles and Workflows](../../../concepts/roles-and-workflows.md)
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
# verify
|
|
2
|
+
|
|
3
|
+
**Phase 11 — No completion claim without deterministic proof.**
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+

|
|
7
|
+

|
|
8
|
+

|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## One-Line Purpose
|
|
13
|
+
|
|
14
|
+
Produce a deterministic, artifact-backed proof that every acceptance criterion claimed to be satisfied by execution is actually satisfied — because "it works" is not evidence.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Pipeline Position
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
EXECUTE
|
|
22
|
+
│
|
|
23
|
+
▼
|
|
24
|
+
┌────────┐
|
|
25
|
+
│ VERIFY │ ◄── YOU ARE HERE
|
|
26
|
+
└────────┘
|
|
27
|
+
│
|
|
28
|
+
▼
|
|
29
|
+
REVIEW ★ gate
|
|
30
|
+
│
|
|
31
|
+
▼
|
|
32
|
+
LEARN ...
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Role Responsible
|
|
38
|
+
|
|
39
|
+
`verifier`
|
|
40
|
+
|
|
41
|
+
The verifier does not review code quality, architecture choices, or style. It confirms one thing: did execution produce outcomes that satisfy the acceptance criteria? This requires running real commands and capturing real output — not reading code and reasoning about whether it would work.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Trigger
|
|
46
|
+
|
|
47
|
+
One or more execution batches are complete. The execution notes artifact exists with task completion statuses.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Steps
|
|
52
|
+
|
|
53
|
+
1. **Load the acceptance criteria from the spec.** This is the verification target. Every AC in scope must be verified.
|
|
54
|
+
|
|
55
|
+
2. **Load the execution notes.** The notes list what was changed and what per-task verification was run. The verifier confirms these verification steps were valid and ran to completion.
|
|
56
|
+
|
|
57
|
+
3. **Run verification for each acceptance criterion.** For each AC:
|
|
58
|
+
- Identify the relevant changed files
|
|
59
|
+
- Run the relevant test command(s), lint command(s), or visual check
|
|
60
|
+
- Capture the output
|
|
61
|
+
|
|
62
|
+
4. **Map test output to acceptance criteria.** Each AC must map to at least one piece of captured output (test result, command output, screenshot). ACs without mapped output are unverified.
|
|
63
|
+
|
|
64
|
+
5. **Run the full test suite.** Even if per-AC verification passes, the full suite must run clean. Regressions in adjacent functionality are execution failures.
|
|
65
|
+
|
|
66
|
+
6. **Produce the verification proof artifact.** For each AC: verdict (pass/fail), the command run, and the captured output. A proof artifact must be reproducible — another verifier following the same steps should produce the same result.
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Input Artifacts
|
|
71
|
+
|
|
72
|
+
| Artifact | Location | Required |
|
|
73
|
+
|----------|----------|----------|
|
|
74
|
+
| Changed files | Repo (working branch) | Yes |
|
|
75
|
+
| Claimed outcomes / execution notes | Run state | Yes |
|
|
76
|
+
| Acceptance criteria (from spec) | Run state | Yes |
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Output Artifacts
|
|
81
|
+
|
|
82
|
+
| Artifact | Description |
|
|
83
|
+
|----------|-------------|
|
|
84
|
+
| Verification proof artifact | Per-AC: verdict, command run, captured output |
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Approval Gate
|
|
89
|
+
|
|
90
|
+
> [!IMPORTANT]
|
|
91
|
+
> **No completion claim can be made without a fresh verification proof artifact.** Stale proof (proof from a prior run before the most recent code changes) is not valid. The proof artifact must be produced against the current working branch state.
|
|
92
|
+
|
|
93
|
+
A partial proof — where some ACs are verified and others are labelled "assumed passing" — is a verification failure. Every AC in scope must have explicit proof.
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Example Run
|
|
98
|
+
|
|
99
|
+
**Acceptance criteria (abbreviated):**
|
|
100
|
+
```
|
|
101
|
+
AC-1: Toggle visible at all viewport widths.
|
|
102
|
+
AC-2: Toggle switches scheme within one render cycle.
|
|
103
|
+
AC-3: Preference persists in localStorage across sessions and new tabs.
|
|
104
|
+
AC-4: Correct rendering at 768px breakpoint.
|
|
105
|
+
AC-5: Toggle back to light restores original scheme.
|
|
106
|
+
AC-6: No existing light mode styles broken.
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
**Verification proof artifact:**
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
## AC-1 — Toggle visibility
|
|
113
|
+
Command: `npm test src/layouts/DashboardLayout.integration.test.tsx`
|
|
114
|
+
Output:
|
|
115
|
+
✓ toggle renders at 320px viewport (12ms)
|
|
116
|
+
✓ toggle renders at 1280px viewport (8ms)
|
|
117
|
+
2 tests passed
|
|
118
|
+
Verdict: PASS
|
|
119
|
+
|
|
120
|
+
## AC-2 — Scheme switches within one render cycle
|
|
121
|
+
Command: `npm test src/components/DarkModeToggle.test.tsx`
|
|
122
|
+
Output:
|
|
123
|
+
✓ clicking toggle applies data-theme="dark" without page reload (15ms)
|
|
124
|
+
1 test passed
|
|
125
|
+
Verdict: PASS
|
|
126
|
+
|
|
127
|
+
## AC-3 — localStorage persistence
|
|
128
|
+
Command: `npm test src/hooks/useDarkMode.test.ts`
|
|
129
|
+
Output:
|
|
130
|
+
✓ theme value persists after localStorage clear/re-read simulation (9ms)
|
|
131
|
+
✓ new tab simulation reads stored theme on mount (11ms)
|
|
132
|
+
2 of 6 relevant tests; full suite: 6/6 passed
|
|
133
|
+
Verdict: PASS
|
|
134
|
+
|
|
135
|
+
## AC-4 — 768px rendering
|
|
136
|
+
Command: `npm test DarkModeToggle -- --viewport=768`
|
|
137
|
+
Output:
|
|
138
|
+
✓ touch target ≥ 44px at 768px (snapshot match) (18ms)
|
|
139
|
+
✓ focus ring visible at 768px (snapshot match) (14ms)
|
|
140
|
+
2 tests passed
|
|
141
|
+
Verdict: PASS
|
|
142
|
+
|
|
143
|
+
## AC-5 — Toggle back to light
|
|
144
|
+
Command: `npm test src/hooks/useDarkMode.test.ts`
|
|
145
|
+
Output:
|
|
146
|
+
✓ toggling from dark to light removes data-theme attribute (8ms)
|
|
147
|
+
1 test passed
|
|
148
|
+
Verdict: PASS
|
|
149
|
+
|
|
150
|
+
## AC-6 — No regressions
|
|
151
|
+
Command: `npm test`
|
|
152
|
+
Output: 147 tests, 147 passed, 0 failed, 0 skipped
|
|
153
|
+
Verdict: PASS
|
|
154
|
+
|
|
155
|
+
## Overall: ALL ACs PASS — proof is fresh against branch dark-mode-feature
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## Common Mistakes
|
|
161
|
+
|
|
162
|
+
| Mistake | Impact | Prevention |
|
|
163
|
+
|---------|--------|------------|
|
|
164
|
+
| Running verification against the wrong branch | Proof is valid for a different state than what ships | Always confirm branch before running verify |
|
|
165
|
+
| Mapping test names to ACs without running the tests | Proof is fabricated; review will be based on false evidence | Run every command and capture actual output — never assume |
|
|
166
|
+
| Marking an AC as "implicitly covered" | The AC has no proof; review cannot confirm it | Every AC needs explicit proof; no implicit coverage |
|
|
167
|
+
| Using stale proof from before the last code change | The proof does not reflect current branch state | Re-run verification after every code change |
|
|
168
|
+
| Stopping at per-task verification without running the full suite | Regressions go undetected until review or production | Full suite is always the final step |
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Related
|
|
173
|
+
|
|
174
|
+
- [Overview — All Workflows](README.md)
|
|
175
|
+
- [Previous: execute](execute.md)
|
|
176
|
+
- [Next: review](review.md)
|
|
177
|
+
- [Roles and Workflows](../../../concepts/roles-and-workflows.md)
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Package Deep Dives
|
|
2
|
+
|
|
3
|
+
This directory contains detailed technical documentation for each package and plugin used by Wazir. Each document covers what the package is, why Wazir chose it specifically, how it is used in the codebase, and key patterns.
|
|
4
|
+
|
|
5
|
+
## npm Packages
|
|
6
|
+
|
|
7
|
+
These are declared in `package.json` as runtime dependencies.
|
|
8
|
+
|
|
9
|
+
| Package | Version | Purpose | README |
|
|
10
|
+
|---------|---------|---------|--------|
|
|
11
|
+
| `ajv` | `^8.18.0` | JSON Schema validation for manifests and artifacts | [ajv.md](ajv.md) |
|
|
12
|
+
| `gray-matter` | `^4.0.3` | YAML front-matter parsing for skill files | [gray-matter.md](gray-matter.md) |
|
|
13
|
+
| `yaml` | `^2.0.0` | YAML parsing for manifest and hook definition files | [yaml.md](yaml.md) |
|
|
14
|
+
|
|
15
|
+
## Built-in Node.js Modules
|
|
16
|
+
|
|
17
|
+
Used as the test runner and assertion library — zero install required.
|
|
18
|
+
|
|
19
|
+
| Module | Purpose | README |
|
|
20
|
+
|--------|---------|--------|
|
|
21
|
+
| `node:test` | Test runner replacing Jest/Vitest | [node-test.md](node-test.md) |
|
|
22
|
+
| `node:assert` | Assertion library (used alongside `node:test`) | [node-test.md](node-test.md) |
|
|
23
|
+
|
|
24
|
+
## Claude Code Plugins
|
|
25
|
+
|
|
26
|
+
External plugins declared as optional adapters in `wazir.manifest.yaml`. Not required for Wazir to function; provides an optional enhancement layer.
|
|
27
|
+
|
|
28
|
+
| Plugin | Manifest key | Purpose | README |
|
|
29
|
+
|--------|-------------|---------|--------|
|
|
30
|
+
| context-mode | `context_mode` | Context compression and sandboxed file execution | [context-mode.md](context-mode.md) |
|
|
31
|
+
|
|
32
|
+
## Dependency Philosophy
|
|
33
|
+
|
|
34
|
+
Wazir intentionally keeps its dependency footprint minimal:
|
|
35
|
+
|
|
36
|
+
- **Three runtime npm dependencies** — ajv, gray-matter, yaml. No framework, no HTTP client, no ORM.
|
|
37
|
+
- **Zero test framework dependencies** — `node:test` and `node:assert` are built-in to Node.js.
|
|
38
|
+
- **All plugins are optional** — context-mode is declared as `package_presence: optional` in the manifest schema. Wazir's core CLI works without it installed.
|
|
39
|
+
|
|
40
|
+
This philosophy means `npm install` is fast, the dependency attack surface is small, and there are no version conflicts between the test runner and the production runtime.
|
|
41
|
+
|
|
42
|
+
## Reading Order
|
|
43
|
+
|
|
44
|
+
If you are new to the Wazir tooling stack, read in this order:
|
|
45
|
+
|
|
46
|
+
1. [yaml.md](yaml.md) — foundational; everything starts by reading a YAML file
|
|
47
|
+
2. [ajv.md](ajv.md) — everything read is validated against a schema
|
|
48
|
+
3. [node-test.md](node-test.md) — how the tooling is tested
|
|
49
|
+
4. [gray-matter.md](gray-matter.md) — how skill files are structured and parsed
|
|
50
|
+
5. [context-mode.md](context-mode.md) — optional context optimization layer
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# ajv
|
|
2
|
+
|
|
3
|
+
> The fastest JSON Schema validator for Node.js and browsers, supporting JSON Schema drafts 04/06/07/2019/2020.
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/ajv)
|
|
6
|
+
[](https://github.com/ajv-validator/ajv/blob/master/LICENSE)
|
|
7
|
+
[](https://www.npmjs.com/package/ajv)
|
|
8
|
+
|
|
9
|
+
## What is ajv?
|
|
10
|
+
|
|
11
|
+
Ajv (Another JSON Validator) is the most widely used JSON Schema validation library in the JavaScript ecosystem. It compiles JSON Schema definitions into highly optimized JavaScript validation functions at startup time rather than interpreting the schema on every call. This compilation step is what makes ajv dramatically faster than interpreted validators — benchmarks consistently show it running 10-100x faster than naive alternatives.
|
|
12
|
+
|
|
13
|
+
Ajv supports the full JSON Schema specification through multiple drafts. Wazir uses the `2020` draft flavor (`ajv/dist/2020.js`), which is the most modern and supports features like `$dynamicRef`, `unevaluatedProperties`, and the updated `prefixItems` array semantics.
|
|
14
|
+
|
|
15
|
+
Beyond raw validation, ajv provides structured error output via `validate.errors`: an array of objects describing exactly which path in the instance failed, which keyword triggered the failure, and what the expected value was. This makes it practical to report meaningful validation feedback rather than generic "invalid" messages.
|
|
16
|
+
|
|
17
|
+
## Why Wazir Uses ajv
|
|
18
|
+
|
|
19
|
+
Wazir's entire artifact and manifest system rests on JSON Schema contracts. Every phase artifact — from `clarification.json` to `verification-proof.json` — must conform to a schema before it can be accepted. Without reliable, fast schema validation, the system cannot enforce its contracts at the tool boundary.
|
|
20
|
+
|
|
21
|
+
ajv was chosen over alternatives for three specific reasons:
|
|
22
|
+
|
|
23
|
+
1. **Compiled validators with caching**: Wazir compiles each schema once and caches the resulting function in a `Map` keyed by `schema.$id`. Subsequent validations of the same schema type hit the cache and pay no re-compilation cost.
|
|
24
|
+
2. **Draft 2020-12 support**: The schemas in `schemas/` use `$id` URIs in the `https://wazir.dev/schemas/` namespace, a pattern encouraged by the 2020 draft. No other popular validator has first-class 2020 support in as stable a form.
|
|
25
|
+
3. **`allErrors` mode**: Wazir configures ajv with `allErrors: true` so that a single validation call surfaces every problem in the document, not just the first one. This is essential for developer feedback — when a manifest or artifact is malformed, the operator sees all issues at once.
|
|
26
|
+
|
|
27
|
+
## How Wazir Uses It
|
|
28
|
+
|
|
29
|
+
The entire ajv surface is encapsulated in a single module:
|
|
30
|
+
|
|
31
|
+
```js
|
|
32
|
+
// tooling/src/schema-validator.js
|
|
33
|
+
import Ajv2020 from 'ajv/dist/2020.js';
|
|
34
|
+
|
|
35
|
+
const ajv = new Ajv2020({
|
|
36
|
+
allErrors: true,
|
|
37
|
+
strict: false,
|
|
38
|
+
validateFormats: false,
|
|
39
|
+
});
|
|
40
|
+
const validatorCache = new Map();
|
|
41
|
+
|
|
42
|
+
function formatError(error) {
|
|
43
|
+
const pointer = error.instancePath || '/';
|
|
44
|
+
return `${pointer} ${error.message}`;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export function validateAgainstSchema(schema, data) {
|
|
48
|
+
const schemaKey = schema.$id ?? JSON.stringify(schema);
|
|
49
|
+
let validate = validatorCache.get(schemaKey);
|
|
50
|
+
|
|
51
|
+
if (!validate) {
|
|
52
|
+
validate = ajv.compile(schema);
|
|
53
|
+
validatorCache.set(schemaKey, validate);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const valid = validate(data);
|
|
57
|
+
|
|
58
|
+
return {
|
|
59
|
+
valid,
|
|
60
|
+
errors: valid ? [] : (validate.errors ?? []).map(formatError),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
This function is called in two places in production code:
|
|
66
|
+
|
|
67
|
+
- `tooling/src/commands/validate.js` — validates `wazir.manifest.yaml` and every hook definition YAML against their respective schemas
|
|
68
|
+
- `tooling/src/export/compiler.js` — validates the generated `host-package.json` and `export.manifest.json` objects before they are committed to disk
|
|
69
|
+
|
|
70
|
+
In tests, `schema-examples.test.js` calls `validateAgainstSchema` directly against all 14 example templates to ensure every template document in `templates/examples/` stays in sync with its schema.
|
|
71
|
+
|
|
72
|
+
## Key Concepts
|
|
73
|
+
|
|
74
|
+
**Schema compilation**: `ajv.compile(schema)` returns a reusable `validate` function. Calling `compile` is expensive; calling the resulting function is cheap. Always compile once and cache.
|
|
75
|
+
|
|
76
|
+
**`instancePath`**: In ajv's error objects, `instancePath` is a JSON Pointer (e.g., `/project/version`) pointing to the failing node in the input data. Wazir formats this as the primary error label.
|
|
77
|
+
|
|
78
|
+
**`$id`**: A URI in the schema that uniquely identifies it. Wazir uses `$id` as the cache key because it is stable across calls, while `JSON.stringify(schema)` is the fallback for inline schemas without an `$id`.
|
|
79
|
+
|
|
80
|
+
**`strict: false`**: Disables ajv's strict mode, which would reject schemas using unknown keywords. Wazir schemas use standard keywords only, but this option avoids surprises during schema iteration.
|
|
81
|
+
|
|
82
|
+
**`validateFormats: false`**: Format validation (e.g., `"format": "uri"`) is disabled because it requires an additional package and is not needed for Wazir's structural contracts.
|
|
83
|
+
|
|
84
|
+
## API Reference (Wazir-relevant subset)
|
|
85
|
+
|
|
86
|
+
| API | Usage in Wazir |
|
|
87
|
+
|-----|---------------------|
|
|
88
|
+
| `new Ajv2020(options)` | Instantiated once as a module-level singleton |
|
|
89
|
+
| `ajv.compile(schema)` | Called once per unique schema, result cached |
|
|
90
|
+
| `validate(data)` | Called on every artifact/manifest to be validated |
|
|
91
|
+
| `validate.errors` | Inspected when `validate()` returns `false` |
|
|
92
|
+
| `error.instancePath` | Used as the human-readable location prefix in error messages |
|
|
93
|
+
| `error.message` | The human-readable failure description from the keyword |
|
|
94
|
+
|
|
95
|
+
## Common Patterns
|
|
96
|
+
|
|
97
|
+
**Singleton + compile cache**: Create one `Ajv` instance for the entire process. Cache compiled validators by `$id`. This is the pattern used in `schema-validator.js` and is the recommended production approach.
|
|
98
|
+
|
|
99
|
+
**Structured error surfacing**: Map `validate.errors` to strings before returning. Never expose the raw ajv error objects to callers — they contain internal implementation details that change across versions.
|
|
100
|
+
|
|
101
|
+
**Schema-first contracts**: Every artifact type in Wazir is defined by a JSON Schema before any code produces or consumes it. The schema is the contract; the validator is the enforcement mechanism.
|
|
102
|
+
|
|
103
|
+
## Alternatives Considered
|
|
104
|
+
|
|
105
|
+
| Package | Why not chosen |
|
|
106
|
+
|---------|---------------|
|
|
107
|
+
| `zod` | TypeScript-first, runtime overhead from object construction, no JSON Schema interoperability |
|
|
108
|
+
| `joi` | Custom schema language, not JSON Schema standard, harder to share schemas with non-JS consumers |
|
|
109
|
+
| `jsonschema` | Older, slower, no 2020-12 draft support |
|
|
110
|
+
| Native `JSON.parse` + manual checks | No schema language, no reuse, no standard tooling |
|
|
111
|
+
|
|
112
|
+
## Resources
|
|
113
|
+
|
|
114
|
+
- [Official documentation](https://ajv.js.org/)
|
|
115
|
+
- [GitHub](https://github.com/ajv-validator/ajv)
|
|
116
|
+
- [npm](https://www.npmjs.com/package/ajv)
|
|
117
|
+
- [JSON Schema 2020-12 specification](https://json-schema.org/draft/2020-12/json-schema-core.html)
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# context-mode
|
|
2
|
+
|
|
3
|
+
> An optional Claude Code plugin that provides context compression and sandboxed code execution tools for managing large conversation windows.
|
|
4
|
+
|
|
5
|
+
[]()
|
|
6
|
+
[]()
|
|
7
|
+
[]()
|
|
8
|
+
|
|
9
|
+
## What is context-mode?
|
|
10
|
+
|
|
11
|
+
context-mode is a Claude Code plugin that addresses one of the fundamental constraints of LLM-based coding agents: context window exhaustion. As a conversation grows — through tool outputs, file reads, test results, and back-and-forth clarification — the context window fills up, forcing the agent to either compact (summarize and lose detail) or stop.
|
|
12
|
+
|
|
13
|
+
context-mode provides tools that let the agent process files and run code in a sandboxed environment where only the relevant output enters the main context window. Instead of reading a 500-line file verbatim (consuming 500 lines of context), the agent can execute a targeted extraction script against the file and receive only the 10 lines it actually needed. This is the core trade: spend a tool call to save context space.
|
|
14
|
+
|
|
15
|
+
The plugin also provides an indexing and search surface for large codebases, allowing the agent to find relevant content by semantic or keyword search rather than reading files speculatively.
|
|
16
|
+
|
|
17
|
+
## Why Wazir References context-mode
|
|
18
|
+
|
|
19
|
+
Wazir's manifest declares context-mode as an optional external adapter:
|
|
20
|
+
|
|
21
|
+
```yaml
|
|
22
|
+
adapters:
|
|
23
|
+
context_mode:
|
|
24
|
+
enabled_by_default: false
|
|
25
|
+
required: false
|
|
26
|
+
install_mode: external
|
|
27
|
+
package_presence: optional
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
This declaration is intentional and conservative. Wazir does not depend on context-mode for any of its core operations. The built-in indexing (`wazir index`), recall (`wazir recall`), and capture surfaces are designed to stand on their own without this adapter. The adapter entry in the manifest exists to:
|
|
31
|
+
|
|
32
|
+
1. **Document the integration point**: Operators who already use context-mode can layer it on top of Wazir without conflict.
|
|
33
|
+
2. **Track the dependency surface**: The manifest schema validates that only known adapters are declared, preventing undocumented external dependencies from accumulating silently.
|
|
34
|
+
3. **Signal opt-in semantics**: `enabled_by_default: false` and `package_presence: optional` tell the tooling that context-mode must never be assumed to be present and must never be required for the core workflow to function.
|
|
35
|
+
|
|
36
|
+
The Wazir docs explicitly state: "Use the built-in Wazir context reduction path first. Treat context-mode as an optional host-specific enhancement, not a required dependency or product center."
|
|
37
|
+
|
|
38
|
+
## How Wazir Relates to It
|
|
39
|
+
|
|
40
|
+
context-mode surfaces appear in the Wazir codebase in two ways:
|
|
41
|
+
|
|
42
|
+
**1. Manifest adapter registration**
|
|
43
|
+
|
|
44
|
+
The adapter is declared in `wazir.manifest.yaml` and validated against the adapter schema in `schemas/wazir-manifest.schema.json`. The schema defines the allowed adapter shape:
|
|
45
|
+
|
|
46
|
+
```json
|
|
47
|
+
"adapter": {
|
|
48
|
+
"type": "object",
|
|
49
|
+
"required": ["enabled_by_default", "required", "install_mode", "package_presence"],
|
|
50
|
+
"properties": {
|
|
51
|
+
"enabled_by_default": { "type": "boolean" },
|
|
52
|
+
"required": { "type": "boolean" },
|
|
53
|
+
"install_mode": { "enum": ["external"] },
|
|
54
|
+
"package_presence": { "enum": ["optional"] }
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Both `install_mode` and `package_presence` are constrained to `"external"` and `"optional"` respectively — the schema enforces that no adapter can be declared as required or bundled.
|
|
60
|
+
|
|
61
|
+
**2. Test fixture declarations**
|
|
62
|
+
|
|
63
|
+
Every test fixture that constructs a synthetic manifest includes the context-mode adapter declaration to match the schema requirements:
|
|
64
|
+
|
|
65
|
+
```js
|
|
66
|
+
adapters: {
|
|
67
|
+
context_mode: {
|
|
68
|
+
enabled_by_default: false,
|
|
69
|
+
required: false,
|
|
70
|
+
install_mode: 'external',
|
|
71
|
+
package_presence: 'optional',
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
This appears in both `tooling/test/validate.test.js` and `tooling/test/export.test.js`.
|
|
77
|
+
|
|
78
|
+
**3. Hook hints in this conversation**
|
|
79
|
+
|
|
80
|
+
The `PreToolUse:Read` hook in this session adds a context tip pointing toward context-mode's `execute_file` tool as a way to process large files without loading their full content into context. This is context-mode working as designed — the hook system informing the agent of available optimization tools.
|
|
81
|
+
|
|
82
|
+
## Key Concepts
|
|
83
|
+
|
|
84
|
+
**Sandboxed execution**: context-mode's `execute_file` and `execute` tools run code in a restricted sandbox. Only stdout is returned to the main context. This prevents accidental side effects while enabling targeted data extraction.
|
|
85
|
+
|
|
86
|
+
**Context budget management**: The guiding principle of context-mode is that context window space is a finite resource. Every file read, tool output, and conversation turn consumes it. context-mode provides alternatives to full-verbatim reads.
|
|
87
|
+
|
|
88
|
+
**Opt-in only**: Wazir enforces this at the manifest schema level. No adapter can be declared as required. The system must be fully functional without any adapter installed.
|
|
89
|
+
|
|
90
|
+
**Lazy integration**: If context-mode is present, the agent can use its tools. If it is absent, the agent falls back to standard file reading and native indexing. No code paths in Wazir's tooling check for or depend on context-mode being available.
|
|
91
|
+
|
|
92
|
+
## Integration Pattern
|
|
93
|
+
|
|
94
|
+
When context-mode is installed alongside Wazir, the recommended usage pattern is:
|
|
95
|
+
|
|
96
|
+
- Use `execute_file` for large files (>50 lines) where only a subset of content is needed — the `PreToolUse:Read` hook tip surfaces this heuristic automatically.
|
|
97
|
+
- Use `search` for finding relevant files across a large codebase before reading them.
|
|
98
|
+
- Use `index` to pre-process a project root so that recall queries return targeted results.
|
|
99
|
+
- Continue using Wazir's built-in `wazir recall` for artifact-specific retrieval.
|
|
100
|
+
|
|
101
|
+
The two systems are complementary: context-mode handles general context compression; Wazir's built-in indexing handles structured artifact and role/workflow retrieval specific to the Wazir operating model.
|
|
102
|
+
|
|
103
|
+
## Adapter Validation
|
|
104
|
+
|
|
105
|
+
Every `wazir validate manifest` run confirms the adapter declaration:
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
$ wazir validate manifest
|
|
109
|
+
Manifest is valid.
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
If the `context_mode` adapter block is removed from the manifest, the schema validation fails because `context_mode` is declared as a required key in the `adapters` object in `schemas/wazir-manifest.schema.json`. This ensures the operator cannot accidentally delete the adapter declaration and lose the documented integration surface.
|
|
113
|
+
|
|
114
|
+
## Resources
|
|
115
|
+
|
|
116
|
+
- [Wazir adapter documentation](../../adapters/context-mode.md)
|
|
117
|
+
- [Wazir manifest schema](../../../schemas/wazir-manifest.schema.json)
|
|
118
|
+
- [context-mode adapter entry in manifest](../../../wazir.manifest.yaml)
|