cfsa-antigravity 3.0.2 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -10
- package/bin/cli.mjs +7 -6
- package/package.json +1 -1
- package/template/.agent/PRDS/codex-runtime-support.md +2 -2
- package/template/.agent/TASKS/codex-runtime-support.md +2 -2
- package/template/.agent/instructions/workflow.md +3 -3
- package/template/.agent/kit-sync.md +3 -3
- package/template/.agent/rules/completion-checklist.md +3 -3
- package/template/.agent/skills/parallel-agents/SKILL.md +1 -1
- package/template/.agent/skills/session-continuity/SKILL.md +6 -6
- package/template/.agent/skills/session-continuity/protocols/01-session-resumption.md +1 -1
- package/template/.agent/skills/session-continuity/protocols/02-progress-generation.md +3 -3
- package/template/.agent/skills/session-continuity/protocols/03-progress-update.md +4 -4
- package/template/.agent/skills/session-continuity/protocols/07-spec-pipeline-generation.md +1 -1
- package/template/.agent/skills/session-continuity/protocols/08-spec-pipeline-update.md +2 -2
- package/template/.agent/skills/session-continuity/protocols/11-parallel-synthesis.md +1 -1
- package/template/.agent/workflows/create-prd-architecture.md +2 -2
- package/template/.agent/workflows/create-prd-design-system.md +2 -2
- package/template/.agent/workflows/create-prd-security.md +2 -2
- package/template/.agent/workflows/create-prd-stack.md +2 -2
- package/template/.agent/workflows/create-prd.md +2 -2
- package/template/.agent/workflows/decompose-architecture-validate.md +1 -1
- package/template/.agent/workflows/decompose-architecture.md +2 -2
- package/template/.agent/workflows/ideate.md +2 -2
- package/template/.agent/workflows/implement-slice-setup.md +1 -1
- package/template/.agent/workflows/implement-slice-tdd.md +3 -3
- package/template/.agent/workflows/implement-slice.md +2 -2
- package/template/.agent/workflows/plan-phase-preflight.md +2 -2
- package/template/.agent/workflows/plan-phase-write.md +2 -2
- package/template/.agent/workflows/plan-phase.md +2 -2
- package/template/.agent/workflows/setup-workspace.md +2 -2
- package/template/.agent/workflows/update-architecture-map.md +1 -1
- package/template/.agent/workflows/validate-phase-quality.md +1 -1
- package/template/.agent/workflows/validate-phase-readiness.md +2 -2
- package/template/.agent/workflows/validate-phase.md +2 -2
- package/template/.agent/workflows/verify-infrastructure.md +1 -1
- package/template/.agent/workflows/write-architecture-spec-deepen.md +3 -3
- package/template/.agent/workflows/write-architecture-spec-design.md +1 -1
- package/template/.agent/workflows/write-architecture-spec.md +3 -3
- package/template/.agent/workflows/write-be-spec-classify.md +1 -1
- package/template/.agent/workflows/write-be-spec-write.md +3 -3
- package/template/.agent/workflows/write-be-spec.md +3 -3
- package/template/.agent/workflows/write-fe-spec-classify.md +1 -1
- package/template/.agent/workflows/write-fe-spec-write.md +2 -2
- package/template/.agent/workflows/write-fe-spec.md +3 -3
- package/template/.claude/README.md +3 -1
- package/template/.claude/instructions/workflow.md +3 -3
- package/template/.claude/kit-sync.md +3 -3
- package/template/.claude/rules/completion-checklist.md +3 -3
- package/template/.claude/skills/parallel-agents/SKILL.md +1 -1
- package/template/.claude/skills/plan-phase/SKILL.md +2 -2
- package/template/.claude/skills/plan-phase-preflight/SKILL.md +2 -2
- package/template/.claude/skills/session-continuity/SKILL.md +6 -6
- package/template/.claude/skills/session-continuity/protocols/01-session-resumption.md +1 -1
- package/template/.claude/skills/session-continuity/protocols/02-progress-generation.md +3 -3
- package/template/.claude/skills/session-continuity/protocols/03-progress-update.md +4 -4
- package/template/.claude/skills/session-continuity/protocols/07-spec-pipeline-generation.md +1 -1
- package/template/.claude/skills/session-continuity/protocols/08-spec-pipeline-update.md +2 -2
- package/template/.claude/skills/session-continuity/protocols/11-parallel-synthesis.md +1 -1
- package/template/.claude/skills/setup/setup-cfsa.md +1 -1
- package/template/.claude/skills/write-architecture-spec/SKILL.md +2 -2
- package/template/.claude/skills/write-architecture-spec-deepen/SKILL.md +1 -1
- package/template/.claude/skills/write-architecture-spec-design/SKILL.md +1 -1
- package/template/.claude/skills/write-be-spec/SKILL.md +3 -3
- package/template/.claude/skills/write-be-spec-classify/SKILL.md +1 -1
- package/template/.claude/skills/write-be-spec-write/SKILL.md +1 -1
- package/template/.claude/skills/write-fe-spec/SKILL.md +3 -3
- package/template/.claude/skills/write-fe-spec-write/SKILL.md +1 -1
- package/template/.codex/README.md +99 -0
- package/template/.codex/instructions/commands.md +24 -0
- package/template/.codex/instructions/example.md +21 -0
- package/template/.codex/instructions/patterns.md +61 -0
- package/template/.codex/instructions/structure.md +29 -0
- package/template/.codex/instructions/tech-stack.md +93 -0
- package/template/.codex/instructions/workflow.md +64 -0
- package/template/.codex/kit-sync.md +6 -0
- package/template/.codex/rules/boundary-not-placeholder.md +146 -0
- package/template/.codex/rules/completion-checklist.md +60 -0
- package/template/.codex/rules/debug-by-test.md +49 -0
- package/template/.codex/rules/decision-classification.md +113 -0
- package/template/.codex/rules/extensibility.md +52 -0
- package/template/.codex/rules/memory-capture.md +84 -0
- package/template/.codex/rules/question-vs-command.md +91 -0
- package/template/.codex/rules/security-first.md +54 -0
- package/template/.codex/rules/single-question.md +59 -0
- package/template/.codex/rules/skill-mcp-first.md +45 -0
- package/template/.codex/rules/source-before-ask.md +93 -0
- package/template/.codex/rules/specificity-standards.md +64 -0
- package/template/.codex/rules/tdd-contract-first.md +67 -0
- package/template/.codex/rules/vertical-slices.md +83 -0
- package/template/.codex/skill-library/MANIFEST.md +498 -0
- package/template/.codex/skill-library/README.md +38 -0
- package/template/.codex/skill-library/meta/claude-code/README.md +9 -0
- package/template/.codex/skill-library/meta/claude-code/agent-development/SKILL.md +415 -0
- package/template/.codex/skill-library/meta/claude-code/hook-development/SKILL.md +712 -0
- package/template/.codex/skill-library/meta/claude-code/plugin-structure/SKILL.md +476 -0
- package/template/.codex/skill-library/meta/mcp-builder/SKILL.md +236 -0
- package/template/.codex/skill-library/meta/product-marketing-context/SKILL.md +241 -0
- package/template/.codex/skill-library/meta/tmux-processes/SKILL.md +210 -0
- package/template/.codex/skill-library/meta/using-tmux-for-interactive-commands/SKILL.md +178 -0
- package/template/.codex/skill-library/stack/3d/threejs-pro/SKILL.md +300 -0
- package/template/.codex/skill-library/stack/ai/ai-sdk/SKILL.md +77 -0
- package/template/.codex/skill-library/stack/ai/langchain/SKILL.md +530 -0
- package/template/.codex/skill-library/stack/ai/ollama/SKILL.md +321 -0
- package/template/.codex/skill-library/stack/ai/openai-sdk/SKILL.md +549 -0
- package/template/.codex/skill-library/stack/analytics/google-analytics/SKILL.md +153 -0
- package/template/.codex/skill-library/stack/api/graphql/SKILL.md +1061 -0
- package/template/.codex/skill-library/stack/api/trpc/SKILL.md +576 -0
- package/template/.codex/skill-library/stack/auth/authjs/SKILL.md +569 -0
- package/template/.codex/skill-library/stack/auth/clerk/SKILL.md +590 -0
- package/template/.codex/skill-library/stack/auth/firebase-auth/SKILL.md +734 -0
- package/template/.codex/skill-library/stack/auth/lucia/SKILL.md +230 -0
- package/template/.codex/skill-library/stack/auth/supabase-auth/SKILL.md +293 -0
- package/template/.codex/skill-library/stack/cms/payload-cms/SKILL.md +573 -0
- package/template/.codex/skill-library/stack/cms/shopify/SKILL.md +1193 -0
- package/template/.codex/skill-library/stack/cms/wordpress/SKILL.md +1104 -0
- package/template/.codex/skill-library/stack/css/sass-scss/SKILL.md +1121 -0
- package/template/.codex/skill-library/stack/css/tailwind-css-patterns/SKILL.md +863 -0
- package/template/.codex/skill-library/stack/css/tailwind-design-system/SKILL.md +490 -0
- package/template/.codex/skill-library/stack/css/vanilla-css/SKILL.md +1078 -0
- package/template/.codex/skill-library/stack/databases/clickhouse/SKILL.md +311 -0
- package/template/.codex/skill-library/stack/databases/influxdb/SKILL.md +280 -0
- package/template/.codex/skill-library/stack/databases/lancedb/SKILL.md +415 -0
- package/template/.codex/skill-library/stack/databases/mongodb/SKILL.md +1169 -0
- package/template/.codex/skill-library/stack/databases/neo4j/SKILL.md +839 -0
- package/template/.codex/skill-library/stack/databases/pgvector/SKILL.md +241 -0
- package/template/.codex/skill-library/stack/databases/pinecone/SKILL.md +212 -0
- package/template/.codex/skill-library/stack/databases/postgresql/SKILL.md +658 -0
- package/template/.codex/skill-library/stack/databases/qdrant/SKILL.md +312 -0
- package/template/.codex/skill-library/stack/databases/redis/SKILL.md +1079 -0
- package/template/.codex/skill-library/stack/databases/spacetimedb/SKILL.md +532 -0
- package/template/.codex/skill-library/stack/databases/sqlite/SKILL.md +1132 -0
- package/template/.codex/skill-library/stack/databases/supabase/SKILL.md +640 -0
- package/template/.codex/skill-library/stack/databases/surrealdb-expert/SKILL.md +945 -0
- package/template/.codex/skill-library/stack/databases/timescaledb/SKILL.md +745 -0
- package/template/.codex/skill-library/stack/databases/weaviate/SKILL.md +218 -0
- package/template/.codex/skill-library/stack/devops/git-advanced/SKILL.md +972 -0
- package/template/.codex/skill-library/stack/devops/git-workflow/SKILL.md +420 -0
- package/template/.codex/skill-library/stack/devops/github-actions/SKILL.md +554 -0
- package/template/.codex/skill-library/stack/devops/kubernetes/SKILL.md +950 -0
- package/template/.codex/skill-library/stack/devops/nginx/SKILL.md +841 -0
- package/template/.codex/skill-library/stack/devops/terraform/SKILL.md +860 -0
- package/template/.codex/skill-library/stack/email/resend/SKILL.md +391 -0
- package/template/.codex/skill-library/stack/extensions/chrome-extension/SKILL.md +375 -0
- package/template/.codex/skill-library/stack/extensions/plasmo/SKILL.md +195 -0
- package/template/.codex/skill-library/stack/extensions/vscode-extension/SKILL.md +453 -0
- package/template/.codex/skill-library/stack/extensions/wxt/SKILL.md +216 -0
- package/template/.codex/skill-library/stack/feature-flags/flagsmith/SKILL.md +187 -0
- package/template/.codex/skill-library/stack/feature-flags/launchdarkly/SKILL.md +183 -0
- package/template/.codex/skill-library/stack/feature-flags/posthog-flags/SKILL.md +189 -0
- package/template/.codex/skill-library/stack/frameworks/astro-framework/SKILL.md +162 -0
- package/template/.codex/skill-library/stack/frameworks/electron/SKILL.md +1286 -0
- package/template/.codex/skill-library/stack/frameworks/fastapi/SKILL.md +650 -0
- package/template/.codex/skill-library/stack/frameworks/hono/SKILL.md +90 -0
- package/template/.codex/skill-library/stack/frameworks/nestjs/SKILL.md +878 -0
- package/template/.codex/skill-library/stack/frameworks/nextjs/SKILL.md +635 -0
- package/template/.codex/skill-library/stack/frameworks/nuxt/SKILL.md +564 -0
- package/template/.codex/skill-library/stack/frameworks/svelte5/SKILL.md +81 -0
- package/template/.codex/skill-library/stack/frameworks/svelte5/references/events.md +353 -0
- package/template/.codex/skill-library/stack/frameworks/svelte5/references/migration.md +339 -0
- package/template/.codex/skill-library/stack/frameworks/svelte5/references/performance.md +443 -0
- package/template/.codex/skill-library/stack/frameworks/svelte5/references/runes.md +394 -0
- package/template/.codex/skill-library/stack/frameworks/svelte5/references/snippets.md +291 -0
- package/template/.codex/skill-library/stack/frameworks/svelte5/references/sveltekit.md +401 -0
- package/template/.codex/skill-library/stack/frameworks/svelte5/references/typescript.md +305 -0
- package/template/.codex/skill-library/stack/frameworks/sveltekit/SKILL.md +614 -0
- package/template/.codex/skill-library/stack/frameworks/tauri/SKILL.md +920 -0
- package/template/.codex/skill-library/stack/gamedev/godot/SKILL.md +1032 -0
- package/template/.codex/skill-library/stack/gamedev/unity/SKILL.md +1175 -0
- package/template/.codex/skill-library/stack/hosting/aws/SKILL.md +467 -0
- package/template/.codex/skill-library/stack/hosting/cloudflare/SKILL.md +201 -0
- package/template/.codex/skill-library/stack/hosting/docker-expert/SKILL.md +409 -0
- package/template/.codex/skill-library/stack/hosting/vercel/SKILL.md +484 -0
- package/template/.codex/skill-library/stack/languages/bash-scripting/SKILL.md +773 -0
- package/template/.codex/skill-library/stack/languages/c-cpp/SKILL.md +712 -0
- package/template/.codex/skill-library/stack/languages/gdscript/SKILL.md +789 -0
- package/template/.codex/skill-library/stack/languages/go/SKILL.md +664 -0
- package/template/.codex/skill-library/stack/languages/java/SKILL.md +778 -0
- package/template/.codex/skill-library/stack/languages/kotlin/SKILL.md +665 -0
- package/template/.codex/skill-library/stack/languages/python/SKILL.md +678 -0
- package/template/.codex/skill-library/stack/languages/rust/SKILL.md +673 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/SKILL.md +141 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/advanced-generics.md +90 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/branded-types.md +57 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/builder-pattern.md +71 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/common-pitfalls.md +135 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/conditional-types.md +27 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/decorators.md +98 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/discriminated-unions.md +62 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/mapped-types.md +53 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/performance-best-practices.md +104 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/template-literal-types.md +49 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/testing-types.md +112 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/type-guards.md +70 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/type-inference.md +101 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/utility-types.md +98 -0
- package/template/.codex/skill-library/stack/languages/vanilla-javascript/SKILL.md +803 -0
- package/template/.codex/skill-library/stack/messaging/kafka/SKILL.md +235 -0
- package/template/.codex/skill-library/stack/messaging/nats/SKILL.md +147 -0
- package/template/.codex/skill-library/stack/messaging/rabbitmq/SKILL.md +178 -0
- package/template/.codex/skill-library/stack/messaging/sqs/SKILL.md +187 -0
- package/template/.codex/skill-library/stack/mobile/expo-react-native/SKILL.md +665 -0
- package/template/.codex/skill-library/stack/mobile/flutter/SKILL.md +316 -0
- package/template/.codex/skill-library/stack/mobile/kotlin-compose/SKILL.md +215 -0
- package/template/.codex/skill-library/stack/mobile/react-native/SKILL.md +337 -0
- package/template/.codex/skill-library/stack/mobile/swiftui/SKILL.md +261 -0
- package/template/.codex/skill-library/stack/monitoring/posthog/SKILL.md +396 -0
- package/template/.codex/skill-library/stack/monitoring/sentry/SKILL.md +509 -0
- package/template/.codex/skill-library/stack/notifications/fcm/SKILL.md +229 -0
- package/template/.codex/skill-library/stack/notifications/sendgrid/SKILL.md +220 -0
- package/template/.codex/skill-library/stack/notifications/twilio/SKILL.md +204 -0
- package/template/.codex/skill-library/stack/observability/datadog/SKILL.md +179 -0
- package/template/.codex/skill-library/stack/observability/distributed-tracing/SKILL.md +140 -0
- package/template/.codex/skill-library/stack/observability/opentelemetry/SKILL.md +164 -0
- package/template/.codex/skill-library/stack/observability/prometheus-grafana/SKILL.md +246 -0
- package/template/.codex/skill-library/stack/observability/python-observability/SKILL.md +158 -0
- package/template/.codex/skill-library/stack/orm/drizzle-orm/SKILL.md +613 -0
- package/template/.codex/skill-library/stack/orm/prisma/SKILL.md +744 -0
- package/template/.codex/skill-library/stack/payments/lemonsqueezy/SKILL.md +393 -0
- package/template/.codex/skill-library/stack/payments/stripe-integration/SKILL.md +457 -0
- package/template/.codex/skill-library/stack/queue/bullmq/SKILL.md +385 -0
- package/template/.codex/skill-library/stack/queue/inngest/SKILL.md +438 -0
- package/template/.codex/skill-library/stack/realtime/socketio/SKILL.md +595 -0
- package/template/.codex/skill-library/stack/search/algolia/SKILL.md +206 -0
- package/template/.codex/skill-library/stack/search/elasticsearch/SKILL.md +248 -0
- package/template/.codex/skill-library/stack/search/meilisearch/SKILL.md +385 -0
- package/template/.codex/skill-library/stack/search/typesense/SKILL.md +189 -0
- package/template/.codex/skill-library/stack/security/crypto-patterns/SKILL.md +437 -0
- package/template/.codex/skill-library/stack/security/csp-cors-headers/SKILL.md +588 -0
- package/template/.codex/skill-library/stack/security/dependency-auditing/SKILL.md +560 -0
- package/template/.codex/skill-library/stack/security/input-sanitization/SKILL.md +430 -0
- package/template/.codex/skill-library/stack/security/owasp-web-security/SKILL.md +421 -0
- package/template/.codex/skill-library/stack/state/tanstack-query/SKILL.md +637 -0
- package/template/.codex/skill-library/stack/state/zustand/SKILL.md +483 -0
- package/template/.codex/skill-library/stack/storage/aws-s3/SKILL.md +415 -0
- package/template/.codex/skill-library/stack/storage/cloudflare-r2/SKILL.md +252 -0
- package/template/.codex/skill-library/stack/storage/gcs/SKILL.md +229 -0
- package/template/.codex/skill-library/stack/testing/playwright/SKILL.md +641 -0
- package/template/.codex/skill-library/stack/testing/storybook/SKILL.md +923 -0
- package/template/.codex/skill-library/stack/testing/testing-library/SKILL.md +872 -0
- package/template/.codex/skill-library/stack/testing/vitest/SKILL.md +714 -0
- package/template/.codex/skill-library/stack/ui/react-best-practices/SKILL.md +877 -0
- package/template/.codex/skill-library/stack/ui/react-composition-patterns/SKILL.md +1107 -0
- package/template/.codex/skill-library/stack/ui/react-flow/SKILL.md +425 -0
- package/template/.codex/skill-library/stack/ui/shadcn-ui/SKILL.md +703 -0
- package/template/.codex/skill-library/stack/ui/svelte-flow/SKILL.md +390 -0
- package/template/.codex/skill-library/surface/api/api-caching/SKILL.md +458 -0
- package/template/.codex/skill-library/surface/api/api-documentation-openapi/SKILL.md +697 -0
- package/template/.codex/skill-library/surface/api/api-error-handling/SKILL.md +478 -0
- package/template/.codex/skill-library/surface/api/api-security-checklist/SKILL.md +147 -0
- package/template/.codex/skill-library/surface/api/email-best-practices/SKILL.md +59 -0
- package/template/.codex/skill-library/surface/api/rate-limiting-abuse-protection/SKILL.md +147 -0
- package/template/.codex/skill-library/surface/api/webhook-design/SKILL.md +752 -0
- package/template/.codex/skill-library/surface/cli/cli-configuration-management/SKILL.md +445 -0
- package/template/.codex/skill-library/surface/cli/cli-error-diagnostics/SKILL.md +515 -0
- package/template/.codex/skill-library/surface/cli/cli-shell-integration/SKILL.md +479 -0
- package/template/.codex/skill-library/surface/cli/cli-ux-design/SKILL.md +477 -0
- package/template/.codex/skill-library/surface/desktop/desktop-app-distribution/SKILL.md +416 -0
- package/template/.codex/skill-library/surface/desktop/desktop-security-sandboxing/SKILL.md +407 -0
- package/template/.codex/skill-library/surface/desktop/desktop-ux-conventions/SKILL.md +361 -0
- package/template/.codex/skill-library/surface/desktop/native-os-integration/SKILL.md +563 -0
- package/template/.codex/skill-library/surface/extension/browser-extension-patterns/SKILL.md +482 -0
- package/template/.codex/skill-library/surface/extension/plugin-architecture-design/SKILL.md +632 -0
- package/template/.codex/skill-library/surface/extension/vscode-extension-development/SKILL.md +728 -0
- package/template/.codex/skill-library/surface/mobile/app-store-submission/SKILL.md +304 -0
- package/template/.codex/skill-library/surface/mobile/mobile-offline-sync/SKILL.md +443 -0
- package/template/.codex/skill-library/surface/mobile/mobile-responsive-patterns/SKILL.md +432 -0
- package/template/.codex/skill-library/surface/mobile/push-notifications/SKILL.md +495 -0
- package/template/.codex/skill-library/surface/web/accessibility-compliance/SKILL.md +827 -0
- package/template/.codex/skill-library/surface/web/ai-seo/SKILL.md +398 -0
- package/template/.codex/skill-library/surface/web/ai-seo/references/content-patterns.md +285 -0
- package/template/.codex/skill-library/surface/web/ai-seo/references/platform-ranking-factors.md +152 -0
- package/template/.codex/skill-library/surface/web/analytics-tracking/SKILL.md +309 -0
- package/template/.codex/skill-library/surface/web/analytics-tracking/references/event-library.md +260 -0
- package/template/.codex/skill-library/surface/web/analytics-tracking/references/ga4-implementation.md +300 -0
- package/template/.codex/skill-library/surface/web/analytics-tracking/references/gtm-implementation.md +390 -0
- package/template/.codex/skill-library/surface/web/authentication-ui-flows/SKILL.md +530 -0
- package/template/.codex/skill-library/surface/web/dark-mode-theming/SKILL.md +516 -0
- package/template/.codex/skill-library/surface/web/design-reference-data/SKILL.md +105 -0
- package/template/.codex/skill-library/surface/web/design-reference-data/data/charts.csv +26 -0
- package/template/.codex/skill-library/surface/web/design-reference-data/data/colors.csv +97 -0
- package/template/.codex/skill-library/surface/web/design-reference-data/data/landing.csv +31 -0
- package/template/.codex/skill-library/surface/web/design-reference-data/data/styles.csv +59 -0
- package/template/.codex/skill-library/surface/web/design-reference-data/data/typography.csv +58 -0
- package/template/.codex/skill-library/surface/web/design-reference-data/data/ux-guidelines.csv +100 -0
- package/template/.codex/skill-library/surface/web/design-reference-data/scripts/core.py +258 -0
- package/template/.codex/skill-library/surface/web/design-reference-data/scripts/design_system.py +1067 -0
- package/template/.codex/skill-library/surface/web/design-reference-data/scripts/search.py +106 -0
- package/template/.codex/skill-library/surface/web/form-handling-validation/SKILL.md +675 -0
- package/template/.codex/skill-library/surface/web/frontend-design/SKILL.md +1393 -0
- package/template/.codex/skill-library/surface/web/frontend-design/templates/cppn-hero.tsx +299 -0
- package/template/.codex/skill-library/surface/web/frontend-design/templates/wave-hero.tsx +875 -0
- package/template/.codex/skill-library/surface/web/frontend-verification/SKILL.md +111 -0
- package/template/.codex/skill-library/surface/web/frontend-verification/scripts/ux_audit.py +739 -0
- package/template/.codex/skill-library/surface/web/i18n-localization/SKILL.md +332 -0
- package/template/.codex/skill-library/surface/web/i18n-localization/references/icu-message-format.md +223 -0
- package/template/.codex/skill-library/surface/web/i18n-localization/references/intl-api-patterns.md +326 -0
- package/template/.codex/skill-library/surface/web/i18n-localization/references/rtl-support.md +298 -0
- package/template/.codex/skill-library/surface/web/offline-first-pwa/SKILL.md +657 -0
- package/template/.codex/skill-library/surface/web/page-cro/SKILL.md +182 -0
- package/template/.codex/skill-library/surface/web/page-cro/references/experiments.md +248 -0
- package/template/.codex/skill-library/surface/web/programmatic-seo/SKILL.md +238 -0
- package/template/.codex/skill-library/surface/web/programmatic-seo/references/playbooks.md +308 -0
- package/template/.codex/skill-library/surface/web/schema-markup/SKILL.md +179 -0
- package/template/.codex/skill-library/surface/web/schema-markup/references/schema-examples.md +398 -0
- package/template/.codex/skill-library/surface/web/seo-audit/SKILL.md +394 -0
- package/template/.codex/skill-library/surface/web/seo-audit/references/ai-writing-detection.md +200 -0
- package/template/.codex/skill-library/surface/web/web-performance-optimization/SKILL.md +646 -0
- package/template/.codex/skill-library/surface/web/web-scraping/SKILL.md +58 -0
- package/template/.codex/skills/README.md +78 -0
- package/template/.codex/skills/accessibility/SKILL.md +522 -0
- package/template/.codex/skills/accessibility/references/WCAG.md +162 -0
- package/template/.codex/skills/accessibility/references/ia-spec-checklist.md +35 -0
- package/template/.codex/skills/adversarial-review/SKILL.md +90 -0
- package/template/.codex/skills/antigravity-workflows/SKILL.md +81 -0
- package/template/.codex/skills/antigravity-workflows/resources/implementation-playbook.md +36 -0
- package/template/.codex/skills/api-design-principles/SKILL.md +169 -0
- package/template/.codex/skills/api-design-principles/assets/api-design-checklist.md +155 -0
- package/template/.codex/skills/api-design-principles/assets/rest-api-template.py +182 -0
- package/template/.codex/skills/api-design-principles/references/graphql-schema-design.md +583 -0
- package/template/.codex/skills/api-design-principles/references/rest-best-practices.md +408 -0
- package/template/.codex/skills/api-design-principles/resources/implementation-playbook.md +513 -0
- package/template/.codex/skills/api-versioning/SKILL.md +166 -0
- package/template/.codex/skills/api-versioning/references/typescript.md +157 -0
- package/template/.codex/skills/architecture-mapping/SKILL.md +219 -0
- package/template/.codex/skills/audit-ambiguity/SKILL.md +54 -0
- package/template/.codex/skills/audit-ambiguity-execute/SKILL.md +86 -0
- package/template/.codex/skills/audit-ambiguity-rubrics/SKILL.md +58 -0
- package/template/.codex/skills/bootstrap-agents/SKILL.md +258 -0
- package/template/.codex/skills/bootstrap-agents-fill/SKILL.md +25 -0
- package/template/.codex/skills/bootstrap-agents-provision/SKILL.md +22 -0
- package/template/.codex/skills/brainstorming/SKILL.md +177 -0
- package/template/.codex/skills/brand-guidelines/SKILL.md +44 -0
- package/template/.codex/skills/clean-code/SKILL.md +196 -0
- package/template/.codex/skills/clean-code/references/typescript.md +126 -0
- package/template/.codex/skills/code-review-pro/SKILL.md +152 -0
- package/template/.codex/skills/concise-planning/SKILL.md +107 -0
- package/template/.codex/skills/create-prd/SKILL.md +94 -0
- package/template/.codex/skills/create-prd-architecture/SKILL.md +72 -0
- package/template/.codex/skills/create-prd-compile/SKILL.md +85 -0
- package/template/.codex/skills/create-prd-design-system/SKILL.md +69 -0
- package/template/.codex/skills/create-prd-security/SKILL.md +66 -0
- package/template/.codex/skills/create-prd-stack/SKILL.md +84 -0
- package/template/.codex/skills/cross-layer-consistency/SKILL.md +117 -0
- package/template/.codex/skills/database-schema-design/SKILL.md +205 -0
- package/template/.codex/skills/database-schema-design/references/relational.md +228 -0
- package/template/.codex/skills/decompose-architecture/SKILL.md +72 -0
- package/template/.codex/skills/decompose-architecture-structure/SKILL.md +62 -0
- package/template/.codex/skills/decompose-architecture-validate/SKILL.md +72 -0
- package/template/.codex/skills/deployment-procedures/SKILL.md +241 -0
- package/template/.codex/skills/design-anti-cliche/SKILL.md +159 -0
- package/template/.codex/skills/design-direction/SKILL.md +45 -0
- package/template/.codex/skills/error-handling-patterns/SKILL.md +226 -0
- package/template/.codex/skills/error-handling-patterns/references/go.md +162 -0
- package/template/.codex/skills/error-handling-patterns/references/python.md +262 -0
- package/template/.codex/skills/error-handling-patterns/references/rust.md +112 -0
- package/template/.codex/skills/error-handling-patterns/references/typescript.md +178 -0
- package/template/.codex/skills/evolve-contract/SKILL.md +24 -0
- package/template/.codex/skills/evolve-feature/SKILL.md +18 -0
- package/template/.codex/skills/evolve-feature-cascade/SKILL.md +24 -0
- package/template/.codex/skills/evolve-feature-classify/SKILL.md +21 -0
- package/template/.codex/skills/find-skills/SKILL.md +145 -0
- package/template/.codex/skills/git-advanced/SKILL.md +972 -0
- package/template/.codex/skills/git-workflow/SKILL.md +420 -0
- package/template/.codex/skills/idea-extraction/SKILL.md +644 -0
- package/template/.codex/skills/ideate/SKILL.md +77 -0
- package/template/.codex/skills/ideate-discover/SKILL.md +89 -0
- package/template/.codex/skills/ideate-extract/SKILL.md +77 -0
- package/template/.codex/skills/ideate-validate/SKILL.md +75 -0
- package/template/.codex/skills/implement-slice/SKILL.md +64 -0
- package/template/.codex/skills/implement-slice-setup/SKILL.md +70 -0
- package/template/.codex/skills/implement-slice-tdd/SKILL.md +78 -0
- package/template/.codex/skills/logging-best-practices/SKILL.md +192 -0
- package/template/.codex/skills/logging-best-practices/references/go.md +49 -0
- package/template/.codex/skills/logging-best-practices/references/python.md +52 -0
- package/template/.codex/skills/logging-best-practices/references/typescript.md +215 -0
- package/template/.codex/skills/migration-management/SKILL.md +200 -0
- package/template/.codex/skills/migration-management/references/relational.md +214 -0
- package/template/.codex/skills/minimalist-surgical-development/SKILL.md +135 -0
- package/template/.codex/skills/parallel-agents/SKILL.md +165 -0
- package/template/.codex/skills/parallel-debugging/SKILL.md +135 -0
- package/template/.codex/skills/parallel-feature-development/SKILL.md +157 -0
- package/template/.codex/skills/performance-budgeting/SKILL.md +144 -0
- package/template/.codex/skills/pipeline-rubrics/SKILL.md +51 -0
- package/template/.codex/skills/pipeline-rubrics/references/architecture-rubric.md +19 -0
- package/template/.codex/skills/pipeline-rubrics/references/be-rubric.md +21 -0
- package/template/.codex/skills/pipeline-rubrics/references/fe-rubric.md +20 -0
- package/template/.codex/skills/pipeline-rubrics/references/ia-rubric.md +19 -0
- package/template/.codex/skills/pipeline-rubrics/references/scoring.md +32 -0
- package/template/.codex/skills/pipeline-rubrics/references/vision-rubric.md +12 -0
- package/template/.codex/skills/plan-phase/SKILL.md +62 -0
- package/template/.codex/skills/plan-phase-preflight/SKILL.md +75 -0
- package/template/.codex/skills/plan-phase-write/SKILL.md +85 -0
- package/template/.codex/skills/prd-templates/SKILL.md +107 -0
- package/template/.codex/skills/prd-templates/references/architecture-completeness-checklist.md +28 -0
- package/template/.codex/skills/prd-templates/references/architecture-design-template.md +88 -0
- package/template/.codex/skills/prd-templates/references/be-spec-classification.md +41 -0
- package/template/.codex/skills/prd-templates/references/be-spec-template.md +107 -0
- package/template/.codex/skills/prd-templates/references/bootstrap-verification-protocol.md +50 -0
- package/template/.codex/skills/prd-templates/references/constraint-exploration.md +41 -0
- package/template/.codex/skills/prd-templates/references/data-placement-template.md +74 -0
- package/template/.codex/skills/prd-templates/references/decision-confirmation-protocol.md +68 -0
- package/template/.codex/skills/prd-templates/references/decision-propagation.md +121 -0
- package/template/.codex/skills/prd-templates/references/decomposition-templates.md +226 -0
- package/template/.codex/skills/prd-templates/references/deep-ideation-loading-protocol.md +114 -0
- package/template/.codex/skills/prd-templates/references/design-system-decisions.md +198 -0
- package/template/.codex/skills/prd-templates/references/design-system-prerequisite-check.md +18 -0
- package/template/.codex/skills/prd-templates/references/domain-exhaustion-criteria.md +37 -0
- package/template/.codex/skills/prd-templates/references/engagement-tier-protocol.md +58 -0
- package/template/.codex/skills/prd-templates/references/engineering-standards-template.md +126 -0
- package/template/.codex/skills/prd-templates/references/evolution-layer-guidance.md +91 -0
- package/template/.codex/skills/prd-templates/references/expansion-modes.md +27 -0
- package/template/.codex/skills/prd-templates/references/fe-classification-procedures.md +47 -0
- package/template/.codex/skills/prd-templates/references/fe-spec-template.md +90 -0
- package/template/.codex/skills/prd-templates/references/feature-ledger-protocol.md +149 -0
- package/template/.codex/skills/prd-templates/references/folder-seeding-protocol.md +77 -0
- package/template/.codex/skills/prd-templates/references/fractal-cx-template.md +58 -0
- package/template/.codex/skills/prd-templates/references/fractal-feature-template.md +93 -0
- package/template/.codex/skills/prd-templates/references/fractal-node-index-template.md +55 -0
- package/template/.codex/skills/prd-templates/references/gate-applicability.md +92 -0
- package/template/.codex/skills/prd-templates/references/ideation-crosscut-template.md +36 -0
- package/template/.codex/skills/prd-templates/references/ideation-index-template.md +111 -0
- package/template/.codex/skills/prd-templates/references/ideation-meta-template.md +126 -0
- package/template/.codex/skills/prd-templates/references/infrastructure-report-template.md +71 -0
- package/template/.codex/skills/prd-templates/references/input-classification.md +23 -0
- package/template/.codex/skills/prd-templates/references/map-guard-protocol.md +65 -0
- package/template/.codex/skills/prd-templates/references/operational-templates.md +116 -0
- package/template/.codex/skills/prd-templates/references/persona-completeness-gate.md +20 -0
- package/template/.codex/skills/prd-templates/references/placeholder-guard-template.md +21 -0
- package/template/.codex/skills/prd-templates/references/placeholder-workflow-mapping.md +50 -0
- package/template/.codex/skills/prd-templates/references/shard-boundary-analysis.md +103 -0
- package/template/.codex/skills/prd-templates/references/shard-split-remediation.md +157 -0
- package/template/.codex/skills/prd-templates/references/skill-loading-protocol.md +36 -0
- package/template/.codex/skills/prd-templates/references/slice-completion-gates.md +29 -0
- package/template/.codex/skills/prd-templates/references/spec-coverage-sweep.md +44 -0
- package/template/.codex/skills/prd-templates/references/surface-model.md +61 -0
- package/template/.codex/skills/prd-templates/references/tdd-testing-policy.md +39 -0
- package/template/.codex/skills/prd-templates/references/vision-template.md +57 -0
- package/template/.codex/skills/prd-templates/references/workflow-checkpoint-protocol.md +112 -0
- package/template/.codex/skills/prd-templates/references/write-verification-protocol.md +57 -0
- package/template/.codex/skills/prompt-engineer/SKILL.md +203 -0
- package/template/.codex/skills/propagate-decision/SKILL.md +18 -0
- package/template/.codex/skills/propagate-decision-apply/SKILL.md +22 -0
- package/template/.codex/skills/propagate-decision-scan/SKILL.md +20 -0
- package/template/.codex/skills/regex-patterns/SKILL.md +333 -0
- package/template/.codex/skills/regex-patterns/references/go.md +44 -0
- package/template/.codex/skills/regex-patterns/references/javascript.md +63 -0
- package/template/.codex/skills/regex-patterns/references/python.md +77 -0
- package/template/.codex/skills/regex-patterns/references/rust.md +43 -0
- package/template/.codex/skills/remediate-pipeline/SKILL.md +18 -0
- package/template/.codex/skills/remediate-pipeline-assess/SKILL.md +21 -0
- package/template/.codex/skills/remediate-pipeline-execute/SKILL.md +23 -0
- package/template/.codex/skills/remediate-shard-split/SKILL.md +21 -0
- package/template/.codex/skills/resolve-ambiguity/SKILL.md +278 -0
- package/template/.codex/skills/security-scanning-security-hardening/SKILL.md +231 -0
- package/template/.codex/skills/session-continuity/SKILL.md +732 -0
- package/template/.codex/skills/session-continuity/protocols/01-session-resumption.md +38 -0
- package/template/.codex/skills/session-continuity/protocols/02-progress-generation.md +85 -0
- package/template/.codex/skills/session-continuity/protocols/03-progress-update.md +70 -0
- package/template/.codex/skills/session-continuity/protocols/04-pattern-extraction.md +60 -0
- package/template/.codex/skills/session-continuity/protocols/05-session-close.md +37 -0
- package/template/.codex/skills/session-continuity/protocols/06-decision-analysis.md +84 -0
- package/template/.codex/skills/session-continuity/protocols/07-spec-pipeline-generation.md +48 -0
- package/template/.codex/skills/session-continuity/protocols/08-spec-pipeline-update.md +65 -0
- package/template/.codex/skills/session-continuity/protocols/09-parallel-claim.md +122 -0
- package/template/.codex/skills/session-continuity/protocols/10-placeholder-verification-gate.md +83 -0
- package/template/.codex/skills/session-continuity/protocols/11-parallel-synthesis.md +21 -0
- package/template/.codex/skills/session-continuity/protocols/ambiguity-gates.md +48 -0
- package/template/.codex/skills/setup/README.md +24 -0
- package/template/.codex/skills/setup/setup-cfsa.md +200 -0
- package/template/.codex/skills/setup/setup-fill-placeholders.md +192 -0
- package/template/.codex/skills/setup/setup-provision-skills.md +82 -0
- package/template/.codex/skills/setup/setup-verify.md +89 -0
- package/template/.codex/skills/setup-workspace/SKILL.md +83 -0
- package/template/.codex/skills/setup-workspace-cicd/SKILL.md +56 -0
- package/template/.codex/skills/setup-workspace-data/SKILL.md +69 -0
- package/template/.codex/skills/setup-workspace-hosting/SKILL.md +59 -0
- package/template/.codex/skills/setup-workspace-scaffold/SKILL.md +72 -0
- package/template/.codex/skills/skill-creator/SKILL.md +203 -0
- package/template/.codex/skills/spec-writing/SKILL.md +110 -0
- package/template/.codex/skills/sync-kit/SKILL.md +23 -0
- package/template/.codex/skills/systematic-debugging/CREATION-LOG.md +119 -0
- package/template/.codex/skills/systematic-debugging/SKILL.md +297 -0
- package/template/.codex/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/template/.codex/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/template/.codex/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/template/.codex/skills/systematic-debugging/find-polluter.sh +63 -0
- package/template/.codex/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/template/.codex/skills/systematic-debugging/test-academic.md +14 -0
- package/template/.codex/skills/systematic-debugging/test-pressure-1.md +58 -0
- package/template/.codex/skills/systematic-debugging/test-pressure-2.md +68 -0
- package/template/.codex/skills/systematic-debugging/test-pressure-3.md +69 -0
- package/template/.codex/skills/tdd-workflow/SKILL.md +186 -0
- package/template/.codex/skills/tdd-workflow/references/typescript.md +231 -0
- package/template/.codex/skills/tech-stack-catalog/SKILL.md +49 -0
- package/template/.codex/skills/tech-stack-catalog/references/constraint-questions.md +237 -0
- package/template/.codex/skills/tech-stack-catalog/references/dev-tooling-decisions.md +37 -0
- package/template/.codex/skills/tech-stack-catalog/references/surface-decision-tables.md +69 -0
- package/template/.codex/skills/technical-writer/SKILL.md +242 -0
- package/template/.codex/skills/testing-strategist/SKILL.md +319 -0
- package/template/.codex/skills/testing-strategist/references/typescript.md +328 -0
- package/template/.codex/skills/update-architecture-map/SKILL.md +21 -0
- package/template/.codex/skills/utilities/resolve-skill.md +195 -0
- package/template/.codex/skills/validate-phase/SKILL.md +62 -0
- package/template/.codex/skills/validate-phase-quality/SKILL.md +67 -0
- package/template/.codex/skills/validate-phase-readiness/SKILL.md +74 -0
- package/template/.codex/skills/verification-before-completion/SKILL.md +97 -0
- package/template/.codex/skills/verify-infrastructure/SKILL.md +25 -0
- package/template/.codex/skills/workflow-automation/SKILL.md +166 -0
- package/template/.codex/skills/workflow-automation/references/inngest.md +88 -0
- package/template/.codex/skills/workflow-automation/references/temporal.md +64 -0
- package/template/.codex/skills/write-architecture-spec/SKILL.md +78 -0
- package/template/.codex/skills/write-architecture-spec-deepen/SKILL.md +82 -0
- package/template/.codex/skills/write-architecture-spec-design/SKILL.md +80 -0
- package/template/.codex/skills/write-be-spec/SKILL.md +75 -0
- package/template/.codex/skills/write-be-spec-classify/SKILL.md +80 -0
- package/template/.codex/skills/write-be-spec-write/SKILL.md +99 -0
- package/template/.codex/skills/write-fe-spec/SKILL.md +79 -0
- package/template/.codex/skills/write-fe-spec-classify/SKILL.md +77 -0
- package/template/.codex/skills/write-fe-spec-write/SKILL.md +88 -0
- package/template/.factory/README.md +2 -3
- package/template/.factory/instructions/workflow.md +3 -3
- package/template/.factory/kit-sync.md +3 -3
- package/template/.factory/skills/completion-checklist/SKILL.md +3 -3
- package/template/.factory/skills/parallel-agents/SKILL.md +1 -1
- package/template/.factory/skills/plan-phase/SKILL.md +2 -2
- package/template/.factory/skills/plan-phase-preflight/SKILL.md +2 -2
- package/template/.factory/skills/session-continuity/SKILL.md +6 -6
- package/template/.factory/skills/session-continuity/protocols/01-session-resumption.md +1 -1
- package/template/.factory/skills/session-continuity/protocols/02-progress-generation.md +3 -3
- package/template/.factory/skills/session-continuity/protocols/03-progress-update.md +4 -4
- package/template/.factory/skills/session-continuity/protocols/07-spec-pipeline-generation.md +1 -1
- package/template/.factory/skills/session-continuity/protocols/08-spec-pipeline-update.md +2 -2
- package/template/.factory/skills/session-continuity/protocols/11-parallel-synthesis.md +1 -1
- package/template/.factory/skills/setup-cfsa/SKILL.md +1 -1
- package/template/.factory/skills/write-architecture-spec/SKILL.md +2 -2
- package/template/.factory/skills/write-architecture-spec-deepen/SKILL.md +1 -1
- package/template/.factory/skills/write-architecture-spec-design/SKILL.md +1 -1
- package/template/.factory/skills/write-be-spec/SKILL.md +3 -3
- package/template/.factory/skills/write-be-spec-classify/SKILL.md +1 -1
- package/template/.factory/skills/write-be-spec-write/SKILL.md +1 -1
- package/template/.factory/skills/write-fe-spec/SKILL.md +3 -3
- package/template/.factory/skills/write-fe-spec-write/SKILL.md +1 -1
- package/template/.memory/README.md +1 -0
- package/template/.memory/mcp-server/README.md +10 -2
- package/template/.memory/mcp-server/client.mjs +61 -18
- package/template/.memory/mcp-server/daemon.mjs +8 -3
- package/template/.memory/mcp-server/runtime.mjs +51 -14
- package/template/.memory/mcp-server/start.mjs +4 -2
- package/template/.memory/migrate/migrate-legacy.mjs +1 -0
- package/template/.memory/pipeline/README.md +1 -0
- package/template/CLAUDE.md +4 -4
- package/template/CODEX.md +6 -53
- package/template/GEMINI.md +2 -2
- package/template/docs/README.md +5 -2
- package/template/docs/kit-architecture.md +36 -19
- package/template/docs/progress-state-catalog.md +48 -0
- package/template/.factory/progress/memory/.gitkeep +0 -0
- /package/template/{.agent/progress → .codex/skills/skill-creator/references}/.gitkeep +0 -0
- /package/template/{.agent/progress/memory → .codex/skills/skill-creator/scripts}/.gitkeep +0 -0
- /package/template/{.agent/progress/sessions → .memory/pipeline/progress}/.gitkeep +0 -0
- /package/template/{.claude/progress → .memory/pipeline/progress/memory}/.gitkeep +0 -0
- /package/template/{.claude/progress/memory → .memory/pipeline/progress/phases}/.gitkeep +0 -0
- /package/template/{.claude → .memory/pipeline}/progress/sessions/.gitkeep +0 -0
- /package/template/{.factory/progress → .memory/pipeline/progress/slices}/.gitkeep +0 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# Shard Boundary Analysis
|
|
2
|
+
|
|
3
|
+
Reference data for the decompose-architecture workflow — shard boundary heuristics, load thresholds, classification types, and split proposal format.
|
|
4
|
+
|
|
5
|
+
## Fractal Tree Signals for Shard Boundaries
|
|
6
|
+
|
|
7
|
+
| Signal | What It Means for Sharding |
|
|
8
|
+
|--------|---------------------------|
|
|
9
|
+
| Deep fractal tree (3+ levels) | Domain is complex enough for its own shard |
|
|
10
|
+
| Many children (5+ features) | Consider splitting into multiple shards |
|
|
11
|
+
| Dense CX file (5+ cross-cuts) | High coupling — keep together in one shard, or isolate carefully |
|
|
12
|
+
| Rich Role Matrix (3+ roles with access) | Shard needs multi-role IA spec coverage |
|
|
13
|
+
| Hub-and-spoke shared domains | Shared domains often become `00-*` cross-cutting shards |
|
|
14
|
+
| Leaf features marked `[EXHAUSTED]` | Most confident for shard scoping — behavior is fully defined |
|
|
15
|
+
|
|
16
|
+
## Standard Boundary Heuristics
|
|
17
|
+
|
|
18
|
+
- Features that share the same data models belong together
|
|
19
|
+
- Features that can be developed/deployed independently are candidates for separation
|
|
20
|
+
- Features that share the same access control model may belong together
|
|
21
|
+
- Cross-cutting concerns (auth, API conventions, error handling) become `00-*` shards
|
|
22
|
+
|
|
23
|
+
## Shard Load Thresholds (Pre-check from Ideation)
|
|
24
|
+
|
|
25
|
+
| Ideation Sub-Areas | Pre-Check Action |
|
|
26
|
+
|---|---|
|
|
27
|
+
| ≤6 | ✅ No concern — proceed |
|
|
28
|
+
| 7–9 | ⚠️ **Pre-flag for split review** — note in the shard skeleton |
|
|
29
|
+
| ≥10 | 🚩 **Proactive split proposal** — present to user NOW before calibration gate |
|
|
30
|
+
|
|
31
|
+
## Sub-feature Count Thresholds (Calibration Gate)
|
|
32
|
+
|
|
33
|
+
Count sub-features using the **bullet/named-item rule**: count every bullet or named item under `## Features`, excluding group headers that introduce a group but are not themselves a concrete capability. Sub-bullets count independently. Test: "Would a product manager list this as a separate line item in a release note?"
|
|
34
|
+
|
|
35
|
+
| Sub-feature Count | Action |
|
|
36
|
+
|-------------------|--------|
|
|
37
|
+
| **≤6** | ✅ OK — proceed |
|
|
38
|
+
| **7–9** | ⚠️ Flag for user review — present sub-feature list and ask: "Keep as-is, or split?" |
|
|
39
|
+
| **≥10** | 🛑 **Hard stop** — present mandatory split proposal. No shard may exit with ≥10 sub-features. |
|
|
40
|
+
|
|
41
|
+
## Shard Document Type Classification
|
|
42
|
+
|
|
43
|
+
| Classification | Expected BE Specs |
|
|
44
|
+
|---------------|-------------------|
|
|
45
|
+
| **Feature domain** | 1 |
|
|
46
|
+
| **Multi-domain** | N (split along sub-feature boundaries) |
|
|
47
|
+
| **Cross-cutting** | 1 (`00-*`) |
|
|
48
|
+
| **Structural reference** | 0 |
|
|
49
|
+
|
|
50
|
+
Annotation format for shard skeletons:
|
|
51
|
+
```markdown
|
|
52
|
+
> **Document Type** (preliminary): Feature domain | Multi-domain | Cross-cutting | Structural reference
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Split Proposal Format
|
|
56
|
+
|
|
57
|
+
When a shard exceeds the ≥10 threshold:
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
Shard [NN] — [domain name] has [N] sub-features (threshold: ≥10 → mandatory split)
|
|
61
|
+
|
|
62
|
+
Current sub-features:
|
|
63
|
+
1. [sub-feature]
|
|
64
|
+
2. [sub-feature]
|
|
65
|
+
...
|
|
66
|
+
|
|
67
|
+
Proposed split:
|
|
68
|
+
[NN]a — [new domain name] → file: .memory/wiki/specs/ia/[NN]a-[domain].md
|
|
69
|
+
Sub-features: 1, 3, 5
|
|
70
|
+
[NN]b — [new domain name] → file: .memory/wiki/specs/ia/[NN]b-[domain].md
|
|
71
|
+
Sub-features: 2, 4, 6
|
|
72
|
+
|
|
73
|
+
Split rationale: [why these groups are independent]
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**After any split**: Update `.memory/wiki/specs/ia/decomposition-plan.md` with the revised table, re-run the Must Have coverage gate, **then run `/remediate-shard-split` to update all downstream cross-references. Do NOT proceed until zero stale parent references remain.** See `.codex/skills/prd-templates/references/shard-split-remediation.md` for scan patterns and matching heuristics.
|
|
77
|
+
|
|
78
|
+
**Companion spec tracking**: When writing BE or FE specs for split shards, populate the `## Split Group` section in each spec file (see `be-spec-template.md` / `fe-spec-template.md`). This enables downstream discovery of sibling specs during implementation.
|
|
79
|
+
|
|
80
|
+
## Total Shard Count Guidance
|
|
81
|
+
|
|
82
|
+
The decomposition should produce a shard count proportional to the ideation depth. Too few shards compress complex domains and lose detail. Too many create coordination overhead that exceeds agent context capacity.
|
|
83
|
+
|
|
84
|
+
### Expected Range by Ideation Scale
|
|
85
|
+
|
|
86
|
+
| Ideation Scale | Domains | Expected Shards (incl. `00-infrastructure`) | Notes |
|
|
87
|
+
|----------------|---------|---------------------------------------------|-------|
|
|
88
|
+
| **Small** | 3–5 | 4–8 | Most domains map 1:1 to shards |
|
|
89
|
+
| **Medium** | 6–8 | 7–14 | Some multi-domain splits expected |
|
|
90
|
+
| **Large** | 9–12 | 12–20 | Cross-cutting shards multiply; enforce sub-feature limits aggressively |
|
|
91
|
+
| **Deep** | 13+ | 16–25 | Maximum recommended. Beyond 25 → consider surface-level decomposition or domain grouping |
|
|
92
|
+
|
|
93
|
+
### Total Count Thresholds (Post-Skeleton Check)
|
|
94
|
+
|
|
95
|
+
After all shard skeletons are created in Step 5, count the total:
|
|
96
|
+
|
|
97
|
+
| Total Shards | Action |
|
|
98
|
+
|--------------|--------|
|
|
99
|
+
| **≤ 20** | ✅ Proceed |
|
|
100
|
+
| **21–25** | ⚠️ Warning — "Decomposition produced [N] shards. This will require [N × 3] spec documents (IA + BE + FE) and proportional phase planning. Confirm this is the intended scope or consider grouping related domains." |
|
|
101
|
+
| **> 25** | 🛑 **Hard stop** — "Decomposition produced [N] shards. This exceeds the recommended maximum for sequential agent processing. Present a domain grouping proposal that reduces shard count to ≤ 25." |
|
|
102
|
+
|
|
103
|
+
> **Why 25 max**: Each shard produces ~3 spec documents (IA + BE + FE). At 25 shards, that's 75 spec documents. Beyond this, cross-layer consistency checks become unreliable and phase planning produces impractical slice counts.
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
# Shard Split Remediation Reference
|
|
2
|
+
|
|
3
|
+
Templates, formats, and scan patterns for `/remediate-shard-split` workflow.
|
|
4
|
+
|
|
5
|
+
## Sub-Shard Mapping Table Format
|
|
6
|
+
|
|
7
|
+
```markdown
|
|
8
|
+
| Parent | Sub-Shard | Domain Name | Keywords |
|
|
9
|
+
|--------|-----------|-------------|----------|
|
|
10
|
+
| 00 | 00a | Consumer Identity | auth, identity, login, registration, session, token, OAuth, password |
|
|
11
|
+
| 00 | 00b | AI Gateway | AI, gateway, LLM, model, inference, prompt, embedding, agent |
|
|
12
|
+
| 00 | 00c | File Storage | file, storage, upload, media, blob, asset, image, document |
|
|
13
|
+
| 00 | 00d | Taxonomy | taxonomy, category, classification, tag, hierarchy, label |
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### Keyword Extraction Rules
|
|
17
|
+
|
|
18
|
+
1. Read each sub-shard's `## Features` section
|
|
19
|
+
2. Extract nouns and domain terms from each feature bullet
|
|
20
|
+
3. Include the sub-shard's domain name words as keywords
|
|
21
|
+
4. Include obvious synonyms (e.g., "auth" → also "authentication", "login", "session")
|
|
22
|
+
5. Aim for 5–10 keywords per sub-shard — enough for matching, not so many they overlap
|
|
23
|
+
|
|
24
|
+
## Cross-Reference Scan Patterns
|
|
25
|
+
|
|
26
|
+
Grep the entire `.memory/wiki/specs/` tree for the parent shard number using these patterns. The `NN` below represents the parent number (e.g., `00`, `01`, `02`).
|
|
27
|
+
|
|
28
|
+
### Primary Patterns (always scan)
|
|
29
|
+
|
|
30
|
+
| Pattern | Matches |
|
|
31
|
+
|---------|---------|
|
|
32
|
+
| `Depends on:.*NN` | Depends-on header lines |
|
|
33
|
+
| `Consumed by:.*NN` | Consumed-by header lines |
|
|
34
|
+
| `\| *NN *\|` | Dependency table cells containing the shard number |
|
|
35
|
+
| `NN — ` or `NN —` | Shard references with em-dash (e.g., "00 — Infrastructure") |
|
|
36
|
+
| `NN - ` or `NN -` | Shard references with hyphen |
|
|
37
|
+
| `(NN` followed by space or `)` | Parenthetical shard references |
|
|
38
|
+
| `shard NN` (case-insensitive) | Inline text references |
|
|
39
|
+
| `NN-[a-z]*.md` parent filename refs | Links to the parent file (e.g., `00-infrastructure.md`) |
|
|
40
|
+
|
|
41
|
+
### Scope
|
|
42
|
+
|
|
43
|
+
| Directory | Required |
|
|
44
|
+
|-----------|----------|
|
|
45
|
+
| `.memory/wiki/specs/ia/` | Always |
|
|
46
|
+
| `.memory/wiki/specs/be/` | If exists |
|
|
47
|
+
| `.memory/wiki/specs/fe/` | If exists |
|
|
48
|
+
| `.memory/wiki/specs/be/web/` | If exists |
|
|
49
|
+
| `.memory/wiki/specs/fe/web/` | If exists |
|
|
50
|
+
| `.memory/wiki/specs/be/desktop/` | If exists |
|
|
51
|
+
| `.memory/wiki/specs/fe/desktop/` | If exists |
|
|
52
|
+
| `.memory/wiki/specs/be/mobile/` | If exists |
|
|
53
|
+
| `.memory/wiki/specs/fe/mobile/` | If exists |
|
|
54
|
+
|
|
55
|
+
### Exclusions
|
|
56
|
+
|
|
57
|
+
- The parent stub file itself (already marked SPLIT)
|
|
58
|
+
- `.memory/wiki/specs/audits/` (audit records, not active specs)
|
|
59
|
+
- `.memory/wiki/specs/ideation/` (upstream of decomposition — doesn't use shard numbers)
|
|
60
|
+
|
|
61
|
+
## Context Matching Heuristics
|
|
62
|
+
|
|
63
|
+
When a stale reference includes a parenthetical description, match it against sub-shard keywords:
|
|
64
|
+
|
|
65
|
+
### Matching Algorithm
|
|
66
|
+
|
|
67
|
+
1. **Exact keyword match**: If the parenthetical contains a word that appears in exactly one sub-shard's keyword list → **clear match**
|
|
68
|
+
2. **Strongest keyword match**: If the parenthetical contains words that appear in multiple sub-shards' keyword lists, pick the sub-shard with the most keyword hits → **clear match** if gap ≥ 2 hits, **ambiguous** otherwise
|
|
69
|
+
3. **Contextual read**: If keyword matching is inconclusive, read the surrounding 5 lines in the downstream file for additional context clues (e.g., what feature is being described in that section)
|
|
70
|
+
4. **No match**: If the parenthetical is generic (e.g., just "Infrastructure" with no specifics) → **flag for user resolution**
|
|
71
|
+
|
|
72
|
+
### Multiple Dependency Detection
|
|
73
|
+
|
|
74
|
+
A downstream shard may legitimately depend on more than one sub-shard. Detect this when:
|
|
75
|
+
|
|
76
|
+
- The `Depends on:` section lists the parent *and* the downstream shard's features span multiple sub-shard domains
|
|
77
|
+
- The downstream shard's data model references entities owned by different sub-shards
|
|
78
|
+
|
|
79
|
+
In this case, propose expanding the single reference into multiple references:
|
|
80
|
+
```
|
|
81
|
+
Before: Depends on: 00 (Infrastructure)
|
|
82
|
+
After: Depends on: 00a (Consumer Identity), 00c (File Storage)
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Remediation Display Format
|
|
86
|
+
|
|
87
|
+
### Clear Match
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
91
|
+
Reference N of X
|
|
92
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
93
|
+
Document: [path]
|
|
94
|
+
Line: [line number]
|
|
95
|
+
Current: [current text with stale reference]
|
|
96
|
+
Context: [extracted context clue]
|
|
97
|
+
Maps to: [proposed sub-shard] — [confidence: clear]
|
|
98
|
+
Fix to: [proposed replacement text]
|
|
99
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
100
|
+
[Y] Apply fix and move to next
|
|
101
|
+
[n] Skip this item
|
|
102
|
+
[e] Edit — provide custom replacement
|
|
103
|
+
[skip] Skip entire document
|
|
104
|
+
[stop-and-save] Save progress and stop
|
|
105
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Ambiguous Match
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
112
|
+
Reference N of X — AMBIGUOUS
|
|
113
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
114
|
+
Document: [path]
|
|
115
|
+
Line: [line number]
|
|
116
|
+
Current: [current text with stale reference]
|
|
117
|
+
Context: [extracted context clue]
|
|
118
|
+
Candidates:
|
|
119
|
+
[1] [sub-shard] — [domain] (keyword match: "[matched words]")
|
|
120
|
+
[2] [sub-shard] — [domain] (keyword match: "[matched words]")
|
|
121
|
+
[M] Multiple — expand to: [sub-shard1], [sub-shard2]
|
|
122
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
123
|
+
Which sub-shard? [1/2/M/skip/stop-and-save]
|
|
124
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Remediation Record Template
|
|
128
|
+
|
|
129
|
+
```markdown
|
|
130
|
+
# Shard Split Remediation — [Parent NN] → [Sub-shards]
|
|
131
|
+
|
|
132
|
+
**Date**: [YYYY-MM-DD]
|
|
133
|
+
**Parent shard**: [NN] — [domain name]
|
|
134
|
+
**Sub-shards**: [list with domain names]
|
|
135
|
+
|
|
136
|
+
## Mapping Table Used
|
|
137
|
+
|
|
138
|
+
[copy of the confirmed mapping table]
|
|
139
|
+
|
|
140
|
+
## Changes Applied
|
|
141
|
+
|
|
142
|
+
| # | Document | Line | Before | After | Confidence |
|
|
143
|
+
|---|----------|------|--------|-------|------------|
|
|
144
|
+
| 1 | [path] | [N] | [old text] | [new text] | clear/user-resolved |
|
|
145
|
+
|
|
146
|
+
## Skipped References
|
|
147
|
+
|
|
148
|
+
| # | Document | Line | Text | Reason |
|
|
149
|
+
|---|----------|------|------|--------|
|
|
150
|
+
| 1 | [path] | [N] | [text] | [reason] |
|
|
151
|
+
|
|
152
|
+
## Verification
|
|
153
|
+
|
|
154
|
+
- **Final grep result**: 0 stale references remaining ✅
|
|
155
|
+
- **Documents scanned**: [N]
|
|
156
|
+
- **Documents modified**: [N]
|
|
157
|
+
```
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Skill Loading Protocol
|
|
2
|
+
|
|
3
|
+
Standard procedure for loading skills from the surface stack map before beginning spec or implementation work.
|
|
4
|
+
|
|
5
|
+
## How to Load Skills from the Surface Stack Map
|
|
6
|
+
|
|
7
|
+
1. **Determine the surface**: Identify which surface this work belongs to from the directory path or phase plan (e.g., `.memory/wiki/specs/be/web/` → surface `web`; flat `.memory/wiki/specs/be/` → surface `shared`).
|
|
8
|
+
|
|
9
|
+
2. **Read the surface stack map**: Open `.codex/instructions/tech-stack.md` and locate this surface's row.
|
|
10
|
+
|
|
11
|
+
3. **For each skill category** relevant to your workflow (Languages, Databases, BE Frameworks, FE Frameworks, FE Design, ORMs, Auth, Unit Tests, E2E Tests, State Mgmt, Accessibility, CI/CD, Hosting, Security):
|
|
12
|
+
- Read the skill name(s) listed in that cell
|
|
13
|
+
- For each skill directory name, read `.codex/skills/[skill]/SKILL.md`
|
|
14
|
+
- Follow its conventions (language, testing, framework, design, etc.)
|
|
15
|
+
|
|
16
|
+
4. **Cross-cutting skills**: Some categories (Auth, Security, CI/CD, Hosting, Accessibility) are in the cross-cutting section — not per-surface. Read those from the cross-cutting rows.
|
|
17
|
+
|
|
18
|
+
5. **Missing skill fallback**: If any skill in the bundle is not installed in `.codex/skills/` and is not in `.codex/skill-library/MANIFEST.md`, read `.codex/skills/find-skills/SKILL.md` and follow its discovery methodology to search for a community equivalent before proceeding without it.
|
|
19
|
+
|
|
20
|
+
## Which Categories to Load Per Workflow
|
|
21
|
+
|
|
22
|
+
| Workflow | Required Categories |
|
|
23
|
+
|----------|-------------------|
|
|
24
|
+
| `write-be-spec-classify` | Languages, Databases, Auth, BE Frameworks, ORMs, Unit Tests |
|
|
25
|
+
| `write-fe-spec-classify` | Languages, FE Frameworks, FE Design, Accessibility, State Mgmt |
|
|
26
|
+
| `write-architecture-spec-design` | Databases, Security, API Design |
|
|
27
|
+
| `setup-workspace-scaffold` | Languages, BE Frameworks, FE Frameworks |
|
|
28
|
+
| `setup-workspace-cicd` | CI/CD, Languages |
|
|
29
|
+
| `setup-workspace-hosting` | Hosting, CI/CD |
|
|
30
|
+
| `setup-workspace-data` | Databases, ORMs |
|
|
31
|
+
| `implement-slice-tdd` | Languages, Unit Tests, E2E Tests |
|
|
32
|
+
| `validate-phase` | Unit Tests, E2E Tests, CI/CD, Hosting, Accessibility, Security |
|
|
33
|
+
|
|
34
|
+
## Surface Stack Map Verification
|
|
35
|
+
|
|
36
|
+
Before loading, verify the required cells have filled values. If any required cell is empty → **HARD STOP**: tell the user to run `/create-prd` first to make tech stack decisions.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Slice Completion Gates
|
|
2
|
+
|
|
3
|
+
Checklists that must pass before a slice can be marked complete. Every unchecked item is a hard stop.
|
|
4
|
+
|
|
5
|
+
## UI Completeness Check (FE slices only)
|
|
6
|
+
|
|
7
|
+
- [ ] Every acceptance criterion mentioning "user sees", "user can", "displays", or "shows" has a rendered implementation — not just a passing test
|
|
8
|
+
- [ ] Every new route in this slice is wired into the app's navigation (not just exported as a component)
|
|
9
|
+
- [ ] Loading, error, and empty states are rendered in the UI — not just covered by tests
|
|
10
|
+
- [ ] The feature is reachable from the app's entry point via normal user navigation
|
|
11
|
+
|
|
12
|
+
Non-FE slices skip this block.
|
|
13
|
+
|
|
14
|
+
## Spec Traceability Gate (all slices)
|
|
15
|
+
|
|
16
|
+
- [ ] Re-read the BE spec section(s) for every endpoint in this slice — every response field, error code, and validation rule has a corresponding test tagged with the spec reference
|
|
17
|
+
- [ ] Re-read the IA shard's `## Edge Cases` section for this slice's domain — every edge case relevant to this slice has a `// IA-EDGE:` tagged test
|
|
18
|
+
- [ ] No `// DECISION:` annotations exist for behaviors that are actually specified in the BE spec or IA shard (i.e., no spec-defined behavior was treated as an undocumented implementation decision)
|
|
19
|
+
- [ ] The {{CONTRACT_LIBRARY}} contract written in Step 2 matches the delivered implementation field-for-field — no fields added, removed, or renamed during implementation without a corresponding contract update
|
|
20
|
+
|
|
21
|
+
## Resource Cleanup Gate (all slices)
|
|
22
|
+
|
|
23
|
+
- [ ] Every database client or connection created in this slice has a corresponding cleanup call (`disconnect`, `close`, `end`, `dispose`) in a `finally` block or lifecycle hook
|
|
24
|
+
- [ ] Every event listener or subscription registered in UI components has a corresponding cleanup in the component's unmount/destroy lifecycle
|
|
25
|
+
- [ ] Every `setInterval` or `setTimeout` with a stored reference has a corresponding `clearInterval`/`clearTimeout` on cleanup
|
|
26
|
+
- [ ] No file handles or streams are opened without corresponding `close`/`destroy` calls
|
|
27
|
+
- [ ] If using connection pools — pool size is configured (not left at framework default) and documented via code comment: `// POOL: max=N, reason=...`
|
|
28
|
+
|
|
29
|
+
> ❌ STOP — Do not call `notify_user` if any of the above are unchecked. Fix the gap and re-run the Test Cmd from the surface stack map.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Spec Coverage Sweep
|
|
2
|
+
|
|
3
|
+
Verifies that a phase's implementation delivered what the specs required — not just that tests pass.
|
|
4
|
+
|
|
5
|
+
## Procedure
|
|
6
|
+
|
|
7
|
+
For each slice in the phase plan (`.memory/wiki/specs/phases/phase-N.md`):
|
|
8
|
+
|
|
9
|
+
### FE Spec Coverage
|
|
10
|
+
|
|
11
|
+
1. Read the slice's acceptance criteria
|
|
12
|
+
2. Identify the FE spec(s) referenced by this slice (via the FE spec's `## Source Map`)
|
|
13
|
+
3. For each named user flow in the relevant FE spec `## Interaction Specification` section that belongs to this slice:
|
|
14
|
+
- Verify a test exists in the test suite that covers this flow by name or by its acceptance criterion
|
|
15
|
+
- Verify the flow is implemented (not stubbed with `BOUNDARY:`) unless a valid boundary stub exists with a tracking issue
|
|
16
|
+
|
|
17
|
+
### BE Spec Coverage
|
|
18
|
+
|
|
19
|
+
4. Identify the BE spec section(s) for each endpoint in this slice
|
|
20
|
+
5. For each endpoint:
|
|
21
|
+
- Verify every {{CONTRACT_LIBRARY}}-validated field in the BE spec has a corresponding test
|
|
22
|
+
- Verify every error code defined in the BE spec has a corresponding test that asserts the **full error response shape** (status + error code + message), not just the HTTP status
|
|
23
|
+
- Verify every auth rule (role, ownership check) defined in the BE spec has a corresponding permission test
|
|
24
|
+
|
|
25
|
+
### IA Shard Coverage
|
|
26
|
+
|
|
27
|
+
6. For each slice, identify which IA shard(s) the slice's features originate from (using either the phase plan's domain references or the FE spec's `## Source Map`). For each identified IA shard:
|
|
28
|
+
- Read the shard's `## Accessibility` section (surface-conditional: apply only for `web`, `mobile`, or `desktop` surfaces). For each accessibility requirement, verify a corresponding test exists (e.g., axe-core check, keyboard navigation test, screen reader label test).
|
|
29
|
+
- Read the shard's acceptance criteria or testability section (look for Given/When/Then format or numbered acceptance criteria). For each criterion, verify it maps to at least one named test in the test suite.
|
|
30
|
+
- Flag any IA criterion with no test coverage as an uncovered item — apply the hard-stop rule below.
|
|
31
|
+
|
|
32
|
+
## Hard Stop Rule
|
|
33
|
+
|
|
34
|
+
If any flow, field, error code, auth rule, IA acceptance criterion, or accessibility requirement has no corresponding test:
|
|
35
|
+
|
|
36
|
+
> ❌ STOP — Do not mark this phase as complete. List the uncovered items. Either write the missing tests and re-run the Test Cmd from `.codex/instructions/commands.md`, or if the item was genuinely deferred (valid boundary stub + tracking issue), document the deferral explicitly in the phase validation report.
|
|
37
|
+
|
|
38
|
+
## Pass Criteria
|
|
39
|
+
|
|
40
|
+
Every named user flow, BE endpoint field, error code, auth rule, IA acceptance criterion, and accessibility requirement in the phase's scope has a corresponding passing test or a documented valid boundary stub.
|
|
41
|
+
|
|
42
|
+
## Report Section
|
|
43
|
+
|
|
44
|
+
Update report (`.memory/wiki/specs/audits/phase-N-validation.md`): Add a `## Spec Coverage` section listing the sweep results — covered items, uncovered items, boundary stubs, accessibility coverage, IA testability trace results, and the pass/fail verdict.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Surface Model Reference
|
|
2
|
+
|
|
3
|
+
This document defines two distinct models used throughout the kit. Understanding the distinction prevents confusion between surface types (what kind of thing you're building) and implementation layers (what a complete feature requires).
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Surface Type Model
|
|
8
|
+
|
|
9
|
+
Used by: stack decisions, bootstrap key `SURFACES`, decomposition, `/plan-phase` Step 0.5
|
|
10
|
+
|
|
11
|
+
The surface type describes the *kind of deployment target* for the project.
|
|
12
|
+
|
|
13
|
+
| Surface Type | Description | Examples |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| `web` | Browser-based application | SaaS dashboard, marketing site, web app |
|
|
16
|
+
| `mobile` | Native or hybrid mobile app | iOS/Android app, React Native, Expo |
|
|
17
|
+
| `desktop` | Native desktop application | Electron, Tauri, native macOS/Windows |
|
|
18
|
+
| `cli` | Command-line interface | Developer tool, automation script, npm package |
|
|
19
|
+
| `api` | Headless API without a user-facing interface | REST API, GraphQL service, microservice |
|
|
20
|
+
| `extension` | Browser extension or plugin | Chrome extension, VS Code plugin |
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Implementation Layer Model
|
|
25
|
+
|
|
26
|
+
Used by: `vertical-slices.md` completeness rule, phase planning, slice acceptance criteria
|
|
27
|
+
|
|
28
|
+
The implementation layer describes *what a complete vertical feature slice requires* — regardless of surface type.
|
|
29
|
+
|
|
30
|
+
| Layer | What It Is | Required For |
|
|
31
|
+
|---|---|---|
|
|
32
|
+
| **Data layer** | Schema, migrations, seed data, storage config | Every feature that persists state |
|
|
33
|
+
| **API layer** | Endpoints, validation, middleware, business logic | Every feature with server-side behavior |
|
|
34
|
+
| **User-facing layer** | The interface for the primary user of this feature | Every feature (form adapts to surface type) |
|
|
35
|
+
| **Admin layer** | Management interface for operators or privileged users | Every feature that needs operator control |
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Reconciliation: Layers Are Always Present, Form Adapts
|
|
40
|
+
|
|
41
|
+
Every surface type has all four implementation layers — but the *form* of each layer adapts to the surface type.
|
|
42
|
+
|
|
43
|
+
| Surface Type | Data Layer | API Layer | User-Facing Layer | Admin Layer |
|
|
44
|
+
|---|---|---|---|---|
|
|
45
|
+
| `web` | DB schema + migrations | REST/GraphQL/tRPC endpoints | Browser UI (pages, components) | Admin dashboard or management UI |
|
|
46
|
+
| `mobile` | Local storage + remote sync | Mobile API endpoints | Native screens | Admin API or web admin |
|
|
47
|
+
| `desktop` | Local DB or file system | Internal IPC or local server | Native window UI | Settings/configuration panel |
|
|
48
|
+
| `cli` | Config files, local state | Internal command router | Command output, prompts, `--help` | Privileged commands, admin mode |
|
|
49
|
+
| `api` | DB schema | API endpoints | Response format (the interface for API consumers) | Admin endpoints or management API |
|
|
50
|
+
| `extension` | Extension storage | Background service worker | Popup or sidebar UI | Extension settings page |
|
|
51
|
+
|
|
52
|
+
**Key insight**: A CLI project has no "admin panel" in the web sense — but it has privileged commands and a management mode that fulfill the admin layer role. The layers are never absent; they just look different.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Related Rules and Workflows
|
|
57
|
+
|
|
58
|
+
- `vertical-slices.md` — uses the Implementation Layer Model to define feature completeness
|
|
59
|
+
- `/plan-phase` Step 0.5 — uses the Surface Type Model to condition completeness checks
|
|
60
|
+
- `bootstrap-agents-fill.md` — fills `{{SURFACES}}` with confirmed Surface Type values
|
|
61
|
+
- `decompose-architecture.md` — uses surface types to determine which skills to load
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# TDD Testing Policy
|
|
2
|
+
|
|
3
|
+
## Assertion Depth Rule
|
|
4
|
+
|
|
5
|
+
Every test must assert **at minimum**:
|
|
6
|
+
- Response status code AND response body structure (not just status)
|
|
7
|
+
- At least one specific field value from the response body
|
|
8
|
+
- For error paths: the full error shape (code + message), not just the status code
|
|
9
|
+
- Contract tests must assert both valid input accepted AND invalid input rejected with the correct error shape
|
|
10
|
+
|
|
11
|
+
Tests that only assert `status == 200` without checking the response body are **insufficient** and will be flagged during QA anti-cheat audit.
|
|
12
|
+
|
|
13
|
+
## Anti-Mock-Abuse Rules
|
|
14
|
+
|
|
15
|
+
| Test Type | Mocking Policy |
|
|
16
|
+
|-----------|---------------|
|
|
17
|
+
| **Unit tests** | Mocking external dependencies allowed and expected |
|
|
18
|
+
| **Integration tests** | At least one test per endpoint must hit a real test database — no mocked DB responses |
|
|
19
|
+
| **E2E tests** | No mocks allowed — full stack or it doesn't count |
|
|
20
|
+
|
|
21
|
+
**Banned patterns**:
|
|
22
|
+
- Mocking the module under test (testing a mock of what you're building)
|
|
23
|
+
- Mock chains (mocking a mock that mocks another dependency)
|
|
24
|
+
- Tests where the mock returns exactly the expected value (circular, proves nothing)
|
|
25
|
+
|
|
26
|
+
**Test order**: Unit → Integration → E2E (if applicable)
|
|
27
|
+
|
|
28
|
+
## QA Anti-Cheat Audit
|
|
29
|
+
|
|
30
|
+
Before marking tests as passing, verify:
|
|
31
|
+
|
|
32
|
+
- [ ] No tests with zero assertions
|
|
33
|
+
- [ ] No tautological tests (e.g., `expect(true).toBe(true)`, `expect(mock).toEqual(mock)`)
|
|
34
|
+
- [ ] No `test.skip` without a `BOUNDARY:` reference and tracking issue
|
|
35
|
+
- [ ] Every test that asserts a response also asserts the response body, not just the status code
|
|
36
|
+
- [ ] No tests that mock the thing they're supposed to test (e.g., mocking the handler to test the handler)
|
|
37
|
+
- [ ] Error path tests actually trigger the error condition — they don't just mock the error response
|
|
38
|
+
|
|
39
|
+
In sequential mode, the agent self-audits against this checklist. In parallel mode, the QA-GREEN agent runs this explicitly.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Vision Document Template
|
|
2
|
+
|
|
3
|
+
Use this template when compiling `.memory/wiki/specs/vision.md` as the human-readable executive summary.
|
|
4
|
+
|
|
5
|
+
> **Important**: `vision.md` is a summary document for human consumption. The pipeline reads
|
|
6
|
+
> `.memory/wiki/specs/ideation/ideation-index.md` directly — not this file. All the depth, domain
|
|
7
|
+
> files, CX files, and structured data live in the `ideation/` folder's fractal tree.
|
|
8
|
+
|
|
9
|
+
```markdown
|
|
10
|
+
# [Project Name] — Vision
|
|
11
|
+
|
|
12
|
+
> One-sentence pitch: [from Step 4]
|
|
13
|
+
|
|
14
|
+
> **This is a human-readable project summary.** For pipeline-grade detail, see
|
|
15
|
+
> [ideation-index.md](ideation/ideation-index.md) and the fractal domain tree it references.
|
|
16
|
+
|
|
17
|
+
## Problem Statement
|
|
18
|
+
[Condensed from `meta/problem-statement.md`]
|
|
19
|
+
|
|
20
|
+
## Target Users
|
|
21
|
+
[Condensed persona summaries from `meta/personas.md` — name + role + pain point + success criteria.
|
|
22
|
+
Not the full 6-field exploration — that detail stays in the personas file.]
|
|
23
|
+
|
|
24
|
+
## Solution Overview
|
|
25
|
+
[2-3 paragraphs describing what the product does and why it matters.]
|
|
26
|
+
|
|
27
|
+
## Domain Map
|
|
28
|
+
[One paragraph per domain, condensed from the ideation domain folders (paths in `ideation-index.md` Structure Map).
|
|
29
|
+
Each domain links to its folder's index file.]
|
|
30
|
+
|
|
31
|
+
## Feature Inventory (MoSCoW)
|
|
32
|
+
### Must Have (Phase 1)
|
|
33
|
+
[Feature names + one-line description. Links to domain folder index files for drill-down detail.]
|
|
34
|
+
### Should Have (Phase 2)
|
|
35
|
+
[Feature names + one-line description.]
|
|
36
|
+
### Could Have (Phase 3+)
|
|
37
|
+
### Won't Have (explicitly excluded)
|
|
38
|
+
|
|
39
|
+
## Key Cross-Cutting Interactions
|
|
40
|
+
[Top confirmed interactions from `ideation-cx.md` (global) and domain-level `*-cx.md` files.
|
|
41
|
+
Full synthesis detail stays in the CX files.]
|
|
42
|
+
|
|
43
|
+
## Constraints Summary
|
|
44
|
+
[Condensed from `meta/constraints.md` — budget, timeline, team, compliance, performance, surfaces.]
|
|
45
|
+
|
|
46
|
+
## Success Metrics
|
|
47
|
+
[Key metrics with concrete targets. Full details in relevant domain folder feature files.]
|
|
48
|
+
|
|
49
|
+
## Competitive Landscape
|
|
50
|
+
[Condensed from `meta/competitive-landscape.md` — competitors, differentiation, moat.]
|
|
51
|
+
|
|
52
|
+
## Key Decisions
|
|
53
|
+
[Numbered list of major product decisions made during ideation.]
|
|
54
|
+
|
|
55
|
+
## Open Questions
|
|
56
|
+
[Anything unresolved that needs answers before architecture — with owners and target stages.]
|
|
57
|
+
```
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# Workflow Checkpoint Protocol
|
|
2
|
+
|
|
3
|
+
> Survive context truncation. When process memory is lost, this file tells the next context exactly where you are and what to do next.
|
|
4
|
+
|
|
5
|
+
## When to use
|
|
6
|
+
|
|
7
|
+
Every `/create-prd` shard workflow writes and reads this checkpoint. It lives at `.memory/wiki/specs/architecture/prd-working/workflow-state.md`.
|
|
8
|
+
|
|
9
|
+
## Checkpoint file format
|
|
10
|
+
|
|
11
|
+
The checkpoint is a markdown file with YAML-style key-value pairs. Agents must parse it on shard start and update it at every write trigger.
|
|
12
|
+
|
|
13
|
+
```markdown
|
|
14
|
+
# Workflow Checkpoint
|
|
15
|
+
|
|
16
|
+
active_shard: .codex/skills/create-prd-stack/SKILL.md
|
|
17
|
+
current_step: per-axis-flow
|
|
18
|
+
current_item: Frontend Framework (STK-04)
|
|
19
|
+
items_completed: [Hosting (STK-01), Database (STK-02), Auth (STK-03)]
|
|
20
|
+
next_action: Read ideation files for Frontend Framework axis, write synthesis
|
|
21
|
+
pending_reads:
|
|
22
|
+
- .memory/wiki/specs/ideation/domains/dashboard/dashboard-deep-dive.md
|
|
23
|
+
- .memory/wiki/specs/ideation/domains/diagnostics/diagnostics-deep-dive.md
|
|
24
|
+
- .memory/wiki/specs/ideation/ideation-cx.md
|
|
25
|
+
synthesis_written: false
|
|
26
|
+
last_user_output: Confirmed Auth Provider as Supabase Auth (STK-03)
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Field definitions
|
|
30
|
+
|
|
31
|
+
| Field | Type | Purpose |
|
|
32
|
+
|-------|------|---------|
|
|
33
|
+
| `active_shard` | filepath | Which workflow file to `view_file` to recover process |
|
|
34
|
+
| `current_step` | string | Step identifier within the shard |
|
|
35
|
+
| `current_item` | string | Axis name, decision name, or section being worked on |
|
|
36
|
+
| `items_completed` | list | Already-completed items (decisions, sections, axes) |
|
|
37
|
+
| `next_action` | string | Exact next thing the agent should do |
|
|
38
|
+
| `pending_reads` | list | Files that MUST be read before next user-facing output |
|
|
39
|
+
| `synthesis_written` | bool | Whether synthesis was written for current item |
|
|
40
|
+
| `last_user_output` | string | Summary of last thing shown to the user |
|
|
41
|
+
|
|
42
|
+
## Write triggers
|
|
43
|
+
|
|
44
|
+
Update the checkpoint file at these moments:
|
|
45
|
+
|
|
46
|
+
1. **Shard start** — initialize with shard filepath, first step, empty completed list
|
|
47
|
+
2. **After reading ideation files** — update `pending_reads` to empty, note files were read
|
|
48
|
+
3. **After writing synthesis** — set `synthesis_written: true`
|
|
49
|
+
4. **After each item completion** — move item to `items_completed`, set next item, reset `synthesis_written: false`, populate `pending_reads` for next item from the Ideation Relevance Index
|
|
50
|
+
5. **Before user-facing output** — update `last_user_output` with summary of what was presented
|
|
51
|
+
6. **Shard completion** — update `current_step: complete`, `next_action: proceed to [next shard]`
|
|
52
|
+
|
|
53
|
+
## Read triggers — Resumption
|
|
54
|
+
|
|
55
|
+
At the start of every shard, check if `.memory/wiki/specs/architecture/prd-working/workflow-state.md` exists.
|
|
56
|
+
|
|
57
|
+
### If it exists and `active_shard` matches this shard:
|
|
58
|
+
|
|
59
|
+
1. **Re-read the shard workflow**: `view_file` the path in `active_shard` — recover the full process
|
|
60
|
+
2. **Load completed items**: Skip already-completed axes/decisions
|
|
61
|
+
3. **Check `synthesis_written`**: If `false` → the agent was interrupted before writing synthesis. Read `pending_reads` files and write synthesis before doing anything else
|
|
62
|
+
4. **Resume from `next_action`**: Execute exactly what the checkpoint says
|
|
63
|
+
|
|
64
|
+
### If it exists and `active_shard` is a DIFFERENT shard:
|
|
65
|
+
|
|
66
|
+
The previous shard finished or a different shard is running. Check `current_step`:
|
|
67
|
+
- If `complete` → previous shard finished cleanly. Initialize fresh checkpoint for this shard
|
|
68
|
+
- If not `complete` → previous shard was interrupted. **STOP**: "Previous shard `{active_shard}` was interrupted at `{current_item}`. Resume that shard first or confirm skip."
|
|
69
|
+
|
|
70
|
+
### If it does not exist:
|
|
71
|
+
|
|
72
|
+
Fresh start. Initialize the checkpoint.
|
|
73
|
+
|
|
74
|
+
## Synthesis verification gate (HARD)
|
|
75
|
+
|
|
76
|
+
> This gate enforces `source-before-ask`. It is not optional.
|
|
77
|
+
|
|
78
|
+
**Before presenting ANY Tier 2 question, option table, or recommendation to the user:**
|
|
79
|
+
|
|
80
|
+
1. Read the checkpoint file
|
|
81
|
+
2. Check `synthesis_written` for the current item
|
|
82
|
+
3. If `synthesis_written: false` → **STOP**. Do not present anything to the user. Read the files in `pending_reads`, write the synthesis to the appropriate synthesis file, update `synthesis_written: true` in the checkpoint, THEN proceed
|
|
83
|
+
4. If `synthesis_written: true` → proceed with user-facing output
|
|
84
|
+
|
|
85
|
+
This gate catches the exact failure mode: context truncation drops the synthesis step, the agent pattern-matches "STK-04 is next" from the summary, and jumps straight to asking the user generic questions.
|
|
86
|
+
|
|
87
|
+
## Shard-specific checkpoint patterns
|
|
88
|
+
|
|
89
|
+
### create-prd-stack
|
|
90
|
+
|
|
91
|
+
- `current_item` format: `{Axis Name} (STK-{NN})`
|
|
92
|
+
- `items_completed` tracks each axis
|
|
93
|
+
- `pending_reads` populated from Ideation Relevance Index per-axis
|
|
94
|
+
- Checkpoint updated at per-axis flow step 9 (move to next axis)
|
|
95
|
+
|
|
96
|
+
### create-prd-design-system
|
|
97
|
+
|
|
98
|
+
- `current_item` format: `{Decision Name} (DS-{NN})`
|
|
99
|
+
- 7 decisions tracked: Navigation Paradigm, Layout Grid, Page Archetypes, Component Hierarchy, Motion System, Data Density, State Design Language
|
|
100
|
+
- `pending_reads` populated from heavy domain files
|
|
101
|
+
|
|
102
|
+
### create-prd-architecture / security / compile
|
|
103
|
+
|
|
104
|
+
- `current_item` format: `{Section Name}`
|
|
105
|
+
- Tracks major sections (e.g., "System Components", "Data Strategy", "Security Model")
|
|
106
|
+
- `pending_reads` populated from relevant ideation domains per section
|
|
107
|
+
|
|
108
|
+
## Cleanup
|
|
109
|
+
|
|
110
|
+
The parent orchestrator (`create-prd.md`) deletes or archives the checkpoint file after Step E (quality gate) passes. The file is a process artifact — once the PRD is compiled, it has no further value.
|
|
111
|
+
|
|
112
|
+
The synthesis files in `prd-working/` are kept as audit trail.
|