cfsa-antigravity 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/bin/cli.mjs +324 -0
- package/package.json +34 -0
- package/template/.agent/instructions/commands.md +48 -0
- package/template/.agent/instructions/patterns.md +61 -0
- package/template/.agent/instructions/structure.md +29 -0
- package/template/.agent/instructions/tech-stack.md +43 -0
- package/template/.agent/instructions/workflow.md +41 -0
- package/template/.agent/kit-sync.md +15 -0
- package/template/.agent/rules/boundary-not-placeholder.md +146 -0
- package/template/.agent/rules/completion-checklist.md +48 -0
- package/template/.agent/rules/decision-classification.md +103 -0
- package/template/.agent/rules/extensibility.md +47 -0
- package/template/.agent/rules/question-vs-command.md +81 -0
- package/template/.agent/rules/security-first.md +43 -0
- package/template/.agent/rules/specificity-standards.md +54 -0
- package/template/.agent/rules/tdd-contract-first.md +57 -0
- package/template/.agent/rules/vertical-slices.md +42 -0
- package/template/.agent/skill-library/MANIFEST.md +480 -0
- package/template/.agent/skill-library/README.md +38 -0
- package/template/.agent/skill-library/meta/brand-guidelines/SKILL.md +73 -0
- package/template/.agent/skill-library/meta/claude-code/README.md +9 -0
- package/template/.agent/skill-library/meta/claude-code/agent-development/SKILL.md +415 -0
- package/template/.agent/skill-library/meta/claude-code/hook-development/SKILL.md +712 -0
- package/template/.agent/skill-library/meta/claude-code/plugin-structure/SKILL.md +476 -0
- package/template/.agent/skill-library/meta/git-advanced/SKILL.md +972 -0
- package/template/.agent/skill-library/meta/mcp-builder/SKILL.md +236 -0
- package/template/.agent/skill-library/meta/product-marketing-context/SKILL.md +241 -0
- package/template/.agent/skill-library/meta/regex-patterns/SKILL.md +751 -0
- package/template/.agent/skill-library/meta/tmux-processes/SKILL.md +210 -0
- package/template/.agent/skill-library/meta/using-tmux-for-interactive-commands/SKILL.md +178 -0
- package/template/.agent/skill-library/stack/3d/threejs-pro/SKILL.md +300 -0
- package/template/.agent/skill-library/stack/ai/ai-sdk/SKILL.md +77 -0
- package/template/.agent/skill-library/stack/ai/langchain/SKILL.md +530 -0
- package/template/.agent/skill-library/stack/ai/ollama/SKILL.md +321 -0
- package/template/.agent/skill-library/stack/ai/openai-sdk/SKILL.md +549 -0
- package/template/.agent/skill-library/stack/analytics/google-analytics/SKILL.md +153 -0
- package/template/.agent/skill-library/stack/api/graphql/SKILL.md +1061 -0
- package/template/.agent/skill-library/stack/api/trpc/SKILL.md +576 -0
- package/template/.agent/skill-library/stack/auth/authjs/SKILL.md +569 -0
- package/template/.agent/skill-library/stack/auth/clerk/SKILL.md +590 -0
- package/template/.agent/skill-library/stack/auth/firebase-auth/SKILL.md +734 -0
- package/template/.agent/skill-library/stack/cms/payload-cms/SKILL.md +573 -0
- package/template/.agent/skill-library/stack/cms/shopify/SKILL.md +1193 -0
- package/template/.agent/skill-library/stack/cms/wordpress/SKILL.md +1104 -0
- package/template/.agent/skill-library/stack/css/sass-scss/SKILL.md +1121 -0
- package/template/.agent/skill-library/stack/css/tailwind-css-patterns/SKILL.md +863 -0
- package/template/.agent/skill-library/stack/css/tailwind-design-system/SKILL.md +490 -0
- package/template/.agent/skill-library/stack/css/vanilla-css/SKILL.md +1078 -0
- package/template/.agent/skill-library/stack/databases/clickhouse/SKILL.md +311 -0
- package/template/.agent/skill-library/stack/databases/influxdb/SKILL.md +280 -0
- package/template/.agent/skill-library/stack/databases/lancedb/SKILL.md +415 -0
- package/template/.agent/skill-library/stack/databases/mongodb/SKILL.md +1169 -0
- package/template/.agent/skill-library/stack/databases/neo4j/SKILL.md +839 -0
- package/template/.agent/skill-library/stack/databases/pgvector/SKILL.md +241 -0
- package/template/.agent/skill-library/stack/databases/pinecone/SKILL.md +212 -0
- package/template/.agent/skill-library/stack/databases/postgresql/SKILL.md +658 -0
- package/template/.agent/skill-library/stack/databases/qdrant/SKILL.md +312 -0
- package/template/.agent/skill-library/stack/databases/redis/SKILL.md +1079 -0
- package/template/.agent/skill-library/stack/databases/spacetimedb/SKILL.md +532 -0
- package/template/.agent/skill-library/stack/databases/sqlite/SKILL.md +1132 -0
- package/template/.agent/skill-library/stack/databases/supabase/SKILL.md +640 -0
- package/template/.agent/skill-library/stack/databases/surrealdb-expert/SKILL.md +945 -0
- package/template/.agent/skill-library/stack/databases/timescaledb/SKILL.md +745 -0
- package/template/.agent/skill-library/stack/databases/weaviate/SKILL.md +218 -0
- package/template/.agent/skill-library/stack/devops/github-actions/SKILL.md +554 -0
- package/template/.agent/skill-library/stack/devops/kubernetes/SKILL.md +950 -0
- package/template/.agent/skill-library/stack/devops/nginx/SKILL.md +841 -0
- package/template/.agent/skill-library/stack/devops/terraform/SKILL.md +860 -0
- package/template/.agent/skill-library/stack/email/resend/SKILL.md +391 -0
- package/template/.agent/skill-library/stack/engines/godot/SKILL.md +488 -0
- package/template/.agent/skill-library/stack/extensions/chrome-extension/SKILL.md +375 -0
- package/template/.agent/skill-library/stack/extensions/vscode-extension/SKILL.md +453 -0
- package/template/.agent/skill-library/stack/frameworks/astro-framework/SKILL.md +162 -0
- package/template/.agent/skill-library/stack/frameworks/electron/SKILL.md +1286 -0
- package/template/.agent/skill-library/stack/frameworks/fastapi/SKILL.md +650 -0
- package/template/.agent/skill-library/stack/frameworks/hono/SKILL.md +90 -0
- package/template/.agent/skill-library/stack/frameworks/nestjs/SKILL.md +878 -0
- package/template/.agent/skill-library/stack/frameworks/nextjs/SKILL.md +635 -0
- package/template/.agent/skill-library/stack/frameworks/nuxt/SKILL.md +564 -0
- package/template/.agent/skill-library/stack/frameworks/sveltekit/SKILL.md +614 -0
- package/template/.agent/skill-library/stack/frameworks/tauri/SKILL.md +920 -0
- package/template/.agent/skill-library/stack/gamedev/godot/SKILL.md +1032 -0
- package/template/.agent/skill-library/stack/gamedev/unity/SKILL.md +1175 -0
- package/template/.agent/skill-library/stack/hosting/aws/SKILL.md +467 -0
- package/template/.agent/skill-library/stack/hosting/cloudflare/SKILL.md +201 -0
- package/template/.agent/skill-library/stack/hosting/docker-expert/SKILL.md +409 -0
- package/template/.agent/skill-library/stack/hosting/vercel/SKILL.md +484 -0
- package/template/.agent/skill-library/stack/languages/bash-scripting/SKILL.md +773 -0
- package/template/.agent/skill-library/stack/languages/c-cpp/SKILL.md +712 -0
- package/template/.agent/skill-library/stack/languages/gdscript/SKILL.md +789 -0
- package/template/.agent/skill-library/stack/languages/go/SKILL.md +664 -0
- package/template/.agent/skill-library/stack/languages/java/SKILL.md +778 -0
- package/template/.agent/skill-library/stack/languages/kotlin/SKILL.md +665 -0
- package/template/.agent/skill-library/stack/languages/python/SKILL.md +678 -0
- package/template/.agent/skill-library/stack/languages/rust/SKILL.md +673 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/SKILL.md +141 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/advanced-generics.md +90 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/branded-types.md +57 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/builder-pattern.md +71 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/common-pitfalls.md +135 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/conditional-types.md +27 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/decorators.md +98 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/discriminated-unions.md +62 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/mapped-types.md +53 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/performance-best-practices.md +104 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/template-literal-types.md +49 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/testing-types.md +112 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/type-guards.md +70 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/type-inference.md +101 -0
- package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/utility-types.md +98 -0
- package/template/.agent/skill-library/stack/languages/vanilla-javascript/SKILL.md +803 -0
- package/template/.agent/skill-library/stack/messaging/kafka/SKILL.md +235 -0
- package/template/.agent/skill-library/stack/mobile/expo-react-native/SKILL.md +665 -0
- package/template/.agent/skill-library/stack/mobile/flutter/SKILL.md +316 -0
- package/template/.agent/skill-library/stack/mobile/react-native/SKILL.md +337 -0
- package/template/.agent/skill-library/stack/monitoring/posthog/SKILL.md +396 -0
- package/template/.agent/skill-library/stack/monitoring/sentry/SKILL.md +509 -0
- package/template/.agent/skill-library/stack/observability/datadog/SKILL.md +179 -0
- package/template/.agent/skill-library/stack/observability/distributed-tracing/SKILL.md +140 -0
- package/template/.agent/skill-library/stack/observability/logging-best-practices/SKILL.md +168 -0
- package/template/.agent/skill-library/stack/observability/opentelemetry/SKILL.md +164 -0
- package/template/.agent/skill-library/stack/observability/prometheus-grafana/SKILL.md +246 -0
- package/template/.agent/skill-library/stack/observability/python-observability/SKILL.md +158 -0
- package/template/.agent/skill-library/stack/orm/drizzle-orm/SKILL.md +613 -0
- package/template/.agent/skill-library/stack/orm/prisma/SKILL.md +744 -0
- package/template/.agent/skill-library/stack/payments/lemonsqueezy/SKILL.md +393 -0
- package/template/.agent/skill-library/stack/payments/stripe-integration/SKILL.md +457 -0
- package/template/.agent/skill-library/stack/queue/bullmq/SKILL.md +385 -0
- package/template/.agent/skill-library/stack/queue/inngest/SKILL.md +438 -0
- package/template/.agent/skill-library/stack/realtime/socketio/SKILL.md +595 -0
- package/template/.agent/skill-library/stack/search/elasticsearch/SKILL.md +248 -0
- package/template/.agent/skill-library/stack/search/meilisearch/SKILL.md +385 -0
- package/template/.agent/skill-library/stack/security/crypto-patterns/SKILL.md +437 -0
- package/template/.agent/skill-library/stack/security/csp-cors-headers/SKILL.md +588 -0
- package/template/.agent/skill-library/stack/security/dependency-auditing/SKILL.md +560 -0
- package/template/.agent/skill-library/stack/security/input-sanitization/SKILL.md +430 -0
- package/template/.agent/skill-library/stack/security/owasp-web-security/SKILL.md +421 -0
- package/template/.agent/skill-library/stack/state/tanstack-query/SKILL.md +637 -0
- package/template/.agent/skill-library/stack/state/zustand/SKILL.md +483 -0
- package/template/.agent/skill-library/stack/storage/aws-s3/SKILL.md +415 -0
- package/template/.agent/skill-library/stack/testing/playwright/SKILL.md +641 -0
- package/template/.agent/skill-library/stack/testing/storybook/SKILL.md +923 -0
- package/template/.agent/skill-library/stack/testing/testing-library/SKILL.md +872 -0
- package/template/.agent/skill-library/stack/testing/vitest/SKILL.md +714 -0
- package/template/.agent/skill-library/stack/ui/react-best-practices/SKILL.md +877 -0
- package/template/.agent/skill-library/stack/ui/react-composition-patterns/SKILL.md +1107 -0
- package/template/.agent/skill-library/stack/ui/react-flow/SKILL.md +425 -0
- package/template/.agent/skill-library/stack/ui/shadcn-ui/SKILL.md +703 -0
- package/template/.agent/skill-library/surface/api/api-caching/SKILL.md +458 -0
- package/template/.agent/skill-library/surface/api/api-documentation-openapi/SKILL.md +697 -0
- package/template/.agent/skill-library/surface/api/api-error-handling/SKILL.md +478 -0
- package/template/.agent/skill-library/surface/api/api-security-checklist/SKILL.md +147 -0
- package/template/.agent/skill-library/surface/api/api-versioning/SKILL.md +420 -0
- package/template/.agent/skill-library/surface/api/email-best-practices/SKILL.md +59 -0
- package/template/.agent/skill-library/surface/api/rate-limiting-abuse-protection/SKILL.md +147 -0
- package/template/.agent/skill-library/surface/api/rest-api-design/SKILL.md +478 -0
- package/template/.agent/skill-library/surface/api/webhook-design/SKILL.md +752 -0
- package/template/.agent/skill-library/surface/cli/cli-configuration-management/SKILL.md +445 -0
- package/template/.agent/skill-library/surface/cli/cli-error-diagnostics/SKILL.md +515 -0
- package/template/.agent/skill-library/surface/cli/cli-shell-integration/SKILL.md +479 -0
- package/template/.agent/skill-library/surface/cli/cli-ux-design/SKILL.md +477 -0
- package/template/.agent/skill-library/surface/desktop/desktop-app-distribution/SKILL.md +416 -0
- package/template/.agent/skill-library/surface/desktop/desktop-security-sandboxing/SKILL.md +407 -0
- package/template/.agent/skill-library/surface/desktop/desktop-ux-conventions/SKILL.md +361 -0
- package/template/.agent/skill-library/surface/desktop/native-os-integration/SKILL.md +563 -0
- package/template/.agent/skill-library/surface/extension/browser-extension-patterns/SKILL.md +482 -0
- package/template/.agent/skill-library/surface/extension/plugin-architecture-design/SKILL.md +632 -0
- package/template/.agent/skill-library/surface/extension/vscode-extension-development/SKILL.md +728 -0
- package/template/.agent/skill-library/surface/mobile/app-store-submission/SKILL.md +304 -0
- package/template/.agent/skill-library/surface/mobile/mobile-offline-sync/SKILL.md +443 -0
- package/template/.agent/skill-library/surface/mobile/mobile-responsive-patterns/SKILL.md +432 -0
- package/template/.agent/skill-library/surface/mobile/push-notifications/SKILL.md +495 -0
- package/template/.agent/skill-library/surface/web/accessibility-compliance/SKILL.md +827 -0
- package/template/.agent/skill-library/surface/web/ai-seo/SKILL.md +398 -0
- package/template/.agent/skill-library/surface/web/ai-seo/references/content-patterns.md +285 -0
- package/template/.agent/skill-library/surface/web/ai-seo/references/platform-ranking-factors.md +152 -0
- package/template/.agent/skill-library/surface/web/analytics-tracking/SKILL.md +309 -0
- package/template/.agent/skill-library/surface/web/analytics-tracking/references/event-library.md +260 -0
- package/template/.agent/skill-library/surface/web/analytics-tracking/references/ga4-implementation.md +300 -0
- package/template/.agent/skill-library/surface/web/analytics-tracking/references/gtm-implementation.md +390 -0
- package/template/.agent/skill-library/surface/web/authentication-ui-flows/SKILL.md +530 -0
- package/template/.agent/skill-library/surface/web/dark-mode-theming/SKILL.md +516 -0
- package/template/.agent/skill-library/surface/web/design-reference-data/SKILL.md +105 -0
- package/template/.agent/skill-library/surface/web/design-reference-data/data/charts.csv +26 -0
- package/template/.agent/skill-library/surface/web/design-reference-data/data/colors.csv +97 -0
- package/template/.agent/skill-library/surface/web/design-reference-data/data/landing.csv +31 -0
- package/template/.agent/skill-library/surface/web/design-reference-data/data/styles.csv +59 -0
- package/template/.agent/skill-library/surface/web/design-reference-data/data/typography.csv +58 -0
- package/template/.agent/skill-library/surface/web/design-reference-data/data/ux-guidelines.csv +100 -0
- package/template/.agent/skill-library/surface/web/design-reference-data/scripts/core.py +258 -0
- package/template/.agent/skill-library/surface/web/design-reference-data/scripts/design_system.py +1067 -0
- package/template/.agent/skill-library/surface/web/design-reference-data/scripts/search.py +106 -0
- package/template/.agent/skill-library/surface/web/form-handling-validation/SKILL.md +675 -0
- package/template/.agent/skill-library/surface/web/frontend-design/SKILL.md +1393 -0
- package/template/.agent/skill-library/surface/web/frontend-design/templates/cppn-hero.tsx +299 -0
- package/template/.agent/skill-library/surface/web/frontend-design/templates/wave-hero.tsx +875 -0
- package/template/.agent/skill-library/surface/web/frontend-verification/SKILL.md +111 -0
- package/template/.agent/skill-library/surface/web/frontend-verification/scripts/ux_audit.py +739 -0
- package/template/.agent/skill-library/surface/web/i18n-localization/SKILL.md +154 -0
- package/template/.agent/skill-library/surface/web/offline-first-pwa/SKILL.md +657 -0
- package/template/.agent/skill-library/surface/web/page-cro/SKILL.md +182 -0
- package/template/.agent/skill-library/surface/web/page-cro/references/experiments.md +248 -0
- package/template/.agent/skill-library/surface/web/programmatic-seo/SKILL.md +238 -0
- package/template/.agent/skill-library/surface/web/programmatic-seo/references/playbooks.md +308 -0
- package/template/.agent/skill-library/surface/web/schema-markup/SKILL.md +179 -0
- package/template/.agent/skill-library/surface/web/schema-markup/references/schema-examples.md +398 -0
- package/template/.agent/skill-library/surface/web/seo-audit/SKILL.md +394 -0
- package/template/.agent/skill-library/surface/web/seo-audit/references/ai-writing-detection.md +200 -0
- package/template/.agent/skill-library/surface/web/web-performance-optimization/SKILL.md +646 -0
- package/template/.agent/skill-library/surface/web/web-scraping/SKILL.md +58 -0
- package/template/.agent/skills/accessibility/SKILL.md +522 -0
- package/template/.agent/skills/accessibility/references/WCAG.md +162 -0
- package/template/.agent/skills/adversarial-review/SKILL.md +90 -0
- package/template/.agent/skills/antigravity-workflows/SKILL.md +81 -0
- package/template/.agent/skills/antigravity-workflows/resources/implementation-playbook.md +36 -0
- package/template/.agent/skills/api-design-principles/SKILL.md +37 -0
- package/template/.agent/skills/api-design-principles/assets/api-design-checklist.md +155 -0
- package/template/.agent/skills/api-design-principles/assets/rest-api-template.py +182 -0
- package/template/.agent/skills/api-design-principles/references/graphql-schema-design.md +583 -0
- package/template/.agent/skills/api-design-principles/references/rest-best-practices.md +408 -0
- package/template/.agent/skills/api-design-principles/resources/implementation-playbook.md +513 -0
- package/template/.agent/skills/api-versioning/SKILL.md +420 -0
- package/template/.agent/skills/architecture-mapping/SKILL.md +219 -0
- package/template/.agent/skills/bootstrap-agents/SKILL.md +259 -0
- package/template/.agent/skills/brainstorming/SKILL.md +236 -0
- package/template/.agent/skills/brand-guidelines/SKILL.md +44 -0
- package/template/.agent/skills/clean-code/SKILL.md +94 -0
- package/template/.agent/skills/code-review-pro/SKILL.md +152 -0
- package/template/.agent/skills/concise-planning/SKILL.md +68 -0
- package/template/.agent/skills/cross-layer-consistency/SKILL.md +117 -0
- package/template/.agent/skills/database-schema-design/SKILL.md +429 -0
- package/template/.agent/skills/deployment-procedures/SKILL.md +241 -0
- package/template/.agent/skills/design-anti-cliche/SKILL.md +159 -0
- package/template/.agent/skills/design-direction/SKILL.md +45 -0
- package/template/.agent/skills/error-handling-patterns/SKILL.md +721 -0
- package/template/.agent/skills/find-skills/SKILL.md +145 -0
- package/template/.agent/skills/git-advanced/SKILL.md +972 -0
- package/template/.agent/skills/git-workflow/SKILL.md +420 -0
- package/template/.agent/skills/idea-extraction/SKILL.md +271 -0
- package/template/.agent/skills/logging-best-practices/SKILL.md +851 -0
- package/template/.agent/skills/migration-management/SKILL.md +384 -0
- package/template/.agent/skills/minimalist-surgical-development/SKILL.md +69 -0
- package/template/.agent/skills/parallel-agents/SKILL.md +165 -0
- package/template/.agent/skills/parallel-debugging/SKILL.md +135 -0
- package/template/.agent/skills/parallel-feature-development/SKILL.md +166 -0
- package/template/.agent/skills/performance-budgeting/SKILL.md +144 -0
- package/template/.agent/skills/pipeline-rubrics/SKILL.md +51 -0
- package/template/.agent/skills/pipeline-rubrics/references/architecture-rubric.md +19 -0
- package/template/.agent/skills/pipeline-rubrics/references/be-rubric.md +21 -0
- package/template/.agent/skills/pipeline-rubrics/references/fe-rubric.md +20 -0
- package/template/.agent/skills/pipeline-rubrics/references/ia-rubric.md +19 -0
- package/template/.agent/skills/pipeline-rubrics/references/scoring.md +28 -0
- package/template/.agent/skills/pipeline-rubrics/references/vision-rubric.md +11 -0
- package/template/.agent/skills/prd-templates/SKILL.md +88 -0
- package/template/.agent/skills/prd-templates/references/architecture-design-template.md +88 -0
- package/template/.agent/skills/prd-templates/references/be-spec-template.md +101 -0
- package/template/.agent/skills/prd-templates/references/data-placement-template.md +74 -0
- package/template/.agent/skills/prd-templates/references/decomposition-templates.md +211 -0
- package/template/.agent/skills/prd-templates/references/design-system-decisions.md +198 -0
- package/template/.agent/skills/prd-templates/references/engineering-standards-template.md +124 -0
- package/template/.agent/skills/prd-templates/references/fe-classification-procedures.md +47 -0
- package/template/.agent/skills/prd-templates/references/fe-spec-template.md +84 -0
- package/template/.agent/skills/prd-templates/references/infrastructure-report-template.md +71 -0
- package/template/.agent/skills/prd-templates/references/operational-templates.md +116 -0
- package/template/.agent/skills/prd-templates/references/placeholder-guard-template.md +21 -0
- package/template/.agent/skills/prd-templates/references/surface-model.md +61 -0
- package/template/.agent/skills/prd-templates/references/vision-template.md +66 -0
- package/template/.agent/skills/prompt-engineer/README.md +659 -0
- package/template/.agent/skills/prompt-engineer/SKILL.md +249 -0
- package/template/.agent/skills/regex-patterns/SKILL.md +751 -0
- package/template/.agent/skills/resolve-ambiguity/SKILL.md +278 -0
- package/template/.agent/skills/rest-api-design/SKILL.md +478 -0
- package/template/.agent/skills/security-scanning-security-hardening/SKILL.md +231 -0
- package/template/.agent/skills/session-continuity/SKILL.md +730 -0
- package/template/.agent/skills/session-continuity/protocols/01-session-resumption.md +38 -0
- package/template/.agent/skills/session-continuity/protocols/02-progress-generation.md +85 -0
- package/template/.agent/skills/session-continuity/protocols/03-progress-update.md +70 -0
- package/template/.agent/skills/session-continuity/protocols/04-pattern-extraction.md +60 -0
- package/template/.agent/skills/session-continuity/protocols/05-session-close.md +37 -0
- package/template/.agent/skills/session-continuity/protocols/06-decision-analysis.md +84 -0
- package/template/.agent/skills/session-continuity/protocols/07-spec-pipeline-generation.md +48 -0
- package/template/.agent/skills/session-continuity/protocols/08-spec-pipeline-update.md +43 -0
- package/template/.agent/skills/session-continuity/protocols/09-parallel-claim.md +122 -0
- package/template/.agent/skills/session-continuity/protocols/10-placeholder-verification-gate.md +104 -0
- package/template/.agent/skills/session-continuity/protocols/ambiguity-gates.md +48 -0
- package/template/.agent/skills/skill-creator/LICENSE.txt +202 -0
- package/template/.agent/skills/skill-creator/README.md +270 -0
- package/template/.agent/skills/skill-creator/SKILL.md +590 -0
- package/template/.agent/skills/skill-creator/references/output-patterns.md +82 -0
- package/template/.agent/skills/skill-creator/references/workflows.md +28 -0
- package/template/.agent/skills/skill-creator/scripts/init_skill.py +303 -0
- package/template/.agent/skills/skill-creator/scripts/package_skill.py +110 -0
- package/template/.agent/skills/skill-creator/scripts/quick_validate.py +95 -0
- package/template/.agent/skills/spec-writing/SKILL.md +110 -0
- package/template/.agent/skills/systematic-debugging/CREATION-LOG.md +119 -0
- package/template/.agent/skills/systematic-debugging/SKILL.md +297 -0
- package/template/.agent/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/template/.agent/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/template/.agent/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/template/.agent/skills/systematic-debugging/find-polluter.sh +63 -0
- package/template/.agent/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/template/.agent/skills/systematic-debugging/test-academic.md +14 -0
- package/template/.agent/skills/systematic-debugging/test-pressure-1.md +58 -0
- package/template/.agent/skills/systematic-debugging/test-pressure-2.md +68 -0
- package/template/.agent/skills/systematic-debugging/test-pressure-3.md +69 -0
- package/template/.agent/skills/tdd-workflow/SKILL.md +409 -0
- package/template/.agent/skills/tech-stack-catalog/SKILL.md +49 -0
- package/template/.agent/skills/tech-stack-catalog/references/constraint-questions.md +21 -0
- package/template/.agent/skills/tech-stack-catalog/references/dev-tooling-decisions.md +37 -0
- package/template/.agent/skills/tech-stack-catalog/references/surface-decision-tables.md +69 -0
- package/template/.agent/skills/technical-writer/SKILL.md +242 -0
- package/template/.agent/skills/testing-strategist/SKILL.md +932 -0
- package/template/.agent/skills/verification-before-completion/SKILL.md +145 -0
- package/template/.agent/skills/workflow-automation/SKILL.md +73 -0
- package/template/.agent/workflows/audit-ambiguity-execute.md +165 -0
- package/template/.agent/workflows/audit-ambiguity-rubrics.md +83 -0
- package/template/.agent/workflows/audit-ambiguity.md +64 -0
- package/template/.agent/workflows/bootstrap-agents-fill.md +201 -0
- package/template/.agent/workflows/bootstrap-agents-provision.md +197 -0
- package/template/.agent/workflows/bootstrap-agents.md +66 -0
- package/template/.agent/workflows/create-prd-architecture.md +119 -0
- package/template/.agent/workflows/create-prd-compile.md +138 -0
- package/template/.agent/workflows/create-prd-design-system.md +135 -0
- package/template/.agent/workflows/create-prd-security.md +113 -0
- package/template/.agent/workflows/create-prd-stack.md +91 -0
- package/template/.agent/workflows/create-prd.md +168 -0
- package/template/.agent/workflows/decompose-architecture-structure.md +82 -0
- package/template/.agent/workflows/decompose-architecture-validate.md +119 -0
- package/template/.agent/workflows/decompose-architecture.md +111 -0
- package/template/.agent/workflows/evolve-contract.md +98 -0
- package/template/.agent/workflows/evolve-feature-cascade.md +140 -0
- package/template/.agent/workflows/evolve-feature-classify.md +116 -0
- package/template/.agent/workflows/evolve-feature.md +56 -0
- package/template/.agent/workflows/ideate-discover.md +144 -0
- package/template/.agent/workflows/ideate-extract.md +129 -0
- package/template/.agent/workflows/ideate-validate.md +117 -0
- package/template/.agent/workflows/ideate.md +113 -0
- package/template/.agent/workflows/implement-slice-setup.md +113 -0
- package/template/.agent/workflows/implement-slice-tdd.md +198 -0
- package/template/.agent/workflows/implement-slice.md +50 -0
- package/template/.agent/workflows/plan-phase.md +202 -0
- package/template/.agent/workflows/propagate-decision-apply.md +135 -0
- package/template/.agent/workflows/propagate-decision-scan.md +147 -0
- package/template/.agent/workflows/propagate-decision.md +56 -0
- package/template/.agent/workflows/remediate-pipeline-assess.md +138 -0
- package/template/.agent/workflows/remediate-pipeline-execute.md +135 -0
- package/template/.agent/workflows/remediate-pipeline.md +55 -0
- package/template/.agent/workflows/resolve-ambiguity.md +82 -0
- package/template/.agent/workflows/sync-kit.md +209 -0
- package/template/.agent/workflows/update-architecture-map.md +74 -0
- package/template/.agent/workflows/validate-phase.md +219 -0
- package/template/.agent/workflows/verify-infrastructure.md +207 -0
- package/template/.agent/workflows/write-architecture-spec-deepen.md +139 -0
- package/template/.agent/workflows/write-architecture-spec-design.md +202 -0
- package/template/.agent/workflows/write-architecture-spec.md +63 -0
- package/template/.agent/workflows/write-be-spec-classify.md +165 -0
- package/template/.agent/workflows/write-be-spec-write.md +98 -0
- package/template/.agent/workflows/write-be-spec.md +76 -0
- package/template/.agent/workflows/write-fe-spec-classify.md +170 -0
- package/template/.agent/workflows/write-fe-spec-write.md +94 -0
- package/template/.agent/workflows/write-fe-spec.md +71 -0
- package/template/AGENTS.md +176 -0
- package/template/GEMINI.md +177 -0
- package/template/docs/README.md +187 -0
- package/template/docs/audits/.gitkeep +0 -0
- package/template/docs/audits/README.md +10 -0
- package/template/docs/plans/.gitkeep +0 -0
- package/template/docs/plans/README.md +21 -0
- package/template/docs/plans/be/.gitkeep +0 -0
- package/template/docs/plans/be/README.md +11 -0
- package/template/docs/plans/fe/.gitkeep +0 -0
- package/template/docs/plans/fe/README.md +11 -0
- package/template/docs/plans/ia/.gitkeep +0 -0
- package/template/docs/plans/ia/README.md +17 -0
- package/template/docs/plans/ia/deep-dives/.gitkeep +0 -0
- package/template/docs/plans/ia/deep-dives/README.md +5 -0
- package/template/docs/plans/phases/.gitkeep +0 -0
- package/template/docs/plans/phases/README.md +11 -0
|
@@ -0,0 +1,730 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: session-continuity
|
|
3
|
+
description: >
|
|
4
|
+
Cross-session progress tracking, pattern extraction, and session resumption.
|
|
5
|
+
Gives agents memory across sessions using markdown files in `.agent/progress/`.
|
|
6
|
+
Subsumes self-improving-agent — handles both implementation tracking AND
|
|
7
|
+
experiential learning in one skill. Workflows invoke specific protocols by name.
|
|
8
|
+
triggers:
|
|
9
|
+
- session start (via workflow.md instruction)
|
|
10
|
+
- plan-phase step 7 (Progress Generation Protocol)
|
|
11
|
+
- implement-slice step 0.5 and step 7 (Session Resumption + Progress Update)
|
|
12
|
+
- end of any workflow (Pattern Extraction Protocol)
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Session Continuity
|
|
16
|
+
|
|
17
|
+
Cross-session memory and spec-driven implementation tracking. This skill replaces
|
|
18
|
+
`self-improving-agent` by combining progress tracking with pattern extraction
|
|
19
|
+
in a single, workflow-driven system.
|
|
20
|
+
|
|
21
|
+
## Overview
|
|
22
|
+
|
|
23
|
+
Without this skill, agents lose all context between sessions. Work restarts from
|
|
24
|
+
scratch, implementations drift without spec accountability, and hard-won patterns
|
|
25
|
+
evaporate. This skill fixes that with five protocols that workflows invoke by name.
|
|
26
|
+
|
|
27
|
+
### What This Skill Does
|
|
28
|
+
|
|
29
|
+
| Capability | What | When |
|
|
30
|
+
|------------|------|------|
|
|
31
|
+
| Progress tracking | Checkboxes mirroring spec depth | `/plan-phase`, `/implement-slice` |
|
|
32
|
+
| Session resumption | Read state, summarize, pick up where you left off | Any workflow start |
|
|
33
|
+
| Pattern extraction | Record what worked, what didn't, update patterns | Any workflow end |
|
|
34
|
+
| Blocker tracking | Log blockers, track resolution | During implementation |
|
|
35
|
+
| Decision analysis | Philosopher + Devil's Advocate deliberation | During design/architecture decisions |
|
|
36
|
+
| Spec pipeline tracking | Per-shard IA/BE/FE spec completion | `/decompose-architecture`, `write-*-spec` |
|
|
37
|
+
| Ambiguity gates | Micro + macro ambiguity checks | End of every spec workflow |
|
|
38
|
+
|
|
39
|
+
### Architecture
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
Workflows = WHAT to do (ordered steps — invoke protocols by name)
|
|
43
|
+
This Skill = HOW to do it (protocols — detailed step-by-step)
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Workflows say: "Read `.agent/skills/session-continuity/protocols/NN-protocol-name.md` and follow the **X Protocol**."
|
|
47
|
+
This skill defines each protocol with exact steps, file formats, and rules.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Directory Structure
|
|
52
|
+
|
|
53
|
+
All progress state lives in `.agent/progress/`:
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
.agent/progress/
|
|
57
|
+
├── index.md # Master checklist — phases + overall %
|
|
58
|
+
├── spec-pipeline.md # Spec completion tracker (IA/BE/FE per shard)
|
|
59
|
+
├── phases/
|
|
60
|
+
│ ├── phase-01.md # Per-phase slice checklist
|
|
61
|
+
│ └── phase-02.md
|
|
62
|
+
├── slices/
|
|
63
|
+
│ ├── phase-01-slice-01.md # Per-slice implementation log
|
|
64
|
+
│ └── phase-01-slice-02.md # (only if slice has ≥3 criteria)
|
|
65
|
+
├── sessions/
|
|
66
|
+
│ ├── 2026-02-15.md # What happened this session
|
|
67
|
+
│ └── 2026-02-16.md
|
|
68
|
+
└── memory/
|
|
69
|
+
├── patterns.md # Reusable patterns + confidence
|
|
70
|
+
├── blockers.md # Active + resolved blockers
|
|
71
|
+
└── decisions.md # Key decisions + rationale
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Adaptive Granularity Rule
|
|
75
|
+
|
|
76
|
+
**A slice gets its own file only when it has ≥3 acceptance criteria.**
|
|
77
|
+
|
|
78
|
+
- Slice with 1-2 criteria → tracked inline in the phase file
|
|
79
|
+
- Slice with 3+ criteria → gets `slices/phase-NN-slice-NN.md`
|
|
80
|
+
|
|
81
|
+
This prevents file explosion for simple specs while giving granular tracking
|
|
82
|
+
for complex ones.
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Protocol 1: Session Resumption
|
|
87
|
+
|
|
88
|
+
**Invoked by**: Any workflow start, or `instructions/workflow.md` step 1
|
|
89
|
+
|
|
90
|
+
**Purpose**: Load cross-session context so the agent knows where to resume.
|
|
91
|
+
|
|
92
|
+
### Steps
|
|
93
|
+
|
|
94
|
+
1. **Check if `.agent/progress/index.md` exists**
|
|
95
|
+
- If no: this is a fresh project with no tracked progress. Skip resumption.
|
|
96
|
+
- If yes: continue.
|
|
97
|
+
|
|
98
|
+
2. **Read `index.md`** — get overall status, phase progress percentages.
|
|
99
|
+
|
|
100
|
+
3. **Find in-progress items** — scan for `[/]` markers (in-progress) in phase files.
|
|
101
|
+
- If found: this is the resumption point.
|
|
102
|
+
- If none: find the next unchecked `[ ]` item.
|
|
103
|
+
|
|
104
|
+
4. **Read the latest session log** — `sessions/` directory, most recent file.
|
|
105
|
+
- What was accomplished last session?
|
|
106
|
+
- What was deferred and why?
|
|
107
|
+
- What's the recommended starting point?
|
|
108
|
+
|
|
109
|
+
5. **Read `memory/blockers.md`** — are there unresolved blockers?
|
|
110
|
+
|
|
111
|
+
6. **Read `memory/decisions.md`** — load key decisions for context.
|
|
112
|
+
|
|
113
|
+
7. **Summarize for the current task**:
|
|
114
|
+
```
|
|
115
|
+
Status: Phase 2 in progress — 3/7 slices complete (43%)
|
|
116
|
+
Last session: Completed auth middleware slice, deferred rate limiting (blocked on Redis)
|
|
117
|
+
Blockers: 1 active — Redis connection config needed
|
|
118
|
+
Resume at: Phase 2, Slice 4 — Rate limiting middleware
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Protocol 2: Progress Generation
|
|
124
|
+
|
|
125
|
+
**Invoked by**: `/plan-phase` step 7
|
|
126
|
+
|
|
127
|
+
**Purpose**: Create progress tracking files from a newly planned phase.
|
|
128
|
+
|
|
129
|
+
### Steps
|
|
130
|
+
|
|
131
|
+
1. **Read the phase plan** that was just created (the output of `/plan-phase`).
|
|
132
|
+
|
|
133
|
+
2. **Create or update `index.md`**:
|
|
134
|
+
```markdown
|
|
135
|
+
# Implementation Progress
|
|
136
|
+
|
|
137
|
+
**Project**: {{PROJECT_NAME}}
|
|
138
|
+
**Last updated**: {{DATE}}
|
|
139
|
+
**Overall**: 0/{{TOTAL}} slices (0%)
|
|
140
|
+
|
|
141
|
+
## Phases
|
|
142
|
+
|
|
143
|
+
| Phase | Status | Progress | Link |
|
|
144
|
+
|-------|--------|----------|------|
|
|
145
|
+
| Phase 1: {{NAME}} | not-started | 0/{{N}} | [→](phases/phase-01.md) |
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
3. **Create `phases/phase-NN.md`**:
|
|
149
|
+
```markdown
|
|
150
|
+
# Phase {{N}}: {{NAME}}
|
|
151
|
+
|
|
152
|
+
**Status**: not-started
|
|
153
|
+
**Progress**: 0/{{TOTAL}} slices
|
|
154
|
+
|
|
155
|
+
## Slices
|
|
156
|
+
|
|
157
|
+
- [ ] **Slice 1**: {{DESCRIPTION}} ({{S|M|L}})
|
|
158
|
+
- [ ] Contract: Zod schema for {{entity}}
|
|
159
|
+
- [ ] `BE` API endpoints for {{entity}}
|
|
160
|
+
- [ ] Subtask 1
|
|
161
|
+
- [ ] Subtask 2
|
|
162
|
+
- [ ] `FE` {{entity}} page and components
|
|
163
|
+
- [ ] Subtask 1
|
|
164
|
+
- [ ] Subtask 2
|
|
165
|
+
- [ ] `QA` Integration tests for {{entity}}
|
|
166
|
+
- [ ] Subtask 1
|
|
167
|
+
→ [log](../slices/phase-01-slice-01.md)
|
|
168
|
+
|
|
169
|
+
- [ ] **Slice 2**: {{DESCRIPTION}} ({{S}})
|
|
170
|
+
- [ ] Criterion 1
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
**Surface tag rules for Progress Generation:**
|
|
174
|
+
- Tag tasks (Level 3) with `BE`, `FE`, or `QA` as a backtick-wrapped prefix
|
|
175
|
+
- Untagged tasks are sequential (handled by orchestrator before parallel dispatch)
|
|
176
|
+
- `files:` blocks are NOT written during generation — only during claim (Protocol 9)
|
|
177
|
+
- Subtasks under tagged tasks inherit the parent's surface ownership
|
|
178
|
+
|
|
179
|
+
4. **Create `slices/phase-NN-slice-NN.md`** for each slice with ≥3 criteria:
|
|
180
|
+
```markdown
|
|
181
|
+
# Phase {{P}} / Slice {{S}}: {{NAME}}
|
|
182
|
+
|
|
183
|
+
**Status**: not-started
|
|
184
|
+
**Complexity**: {{S|M|L}}
|
|
185
|
+
|
|
186
|
+
## Acceptance Criteria
|
|
187
|
+
- [ ] Criterion 1
|
|
188
|
+
- [ ] Criterion 2
|
|
189
|
+
- [ ] Criterion 3
|
|
190
|
+
|
|
191
|
+
## Implementation Notes
|
|
192
|
+
<!-- Filled during /implement-slice -->
|
|
193
|
+
|
|
194
|
+
## Files Changed
|
|
195
|
+
<!-- List of files created/modified -->
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
5. **Initialize memory files** (only if they don't already exist):
|
|
199
|
+
- `memory/patterns.md` — empty with header
|
|
200
|
+
- `memory/blockers.md` — empty with header
|
|
201
|
+
- `memory/decisions.md` — empty with header
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Protocol 3: Progress Update
|
|
206
|
+
|
|
207
|
+
**Invoked by**: `/implement-slice` step 7
|
|
208
|
+
|
|
209
|
+
**Purpose**: Mark completed work, release claims, and propagate status changes upward.
|
|
210
|
+
|
|
211
|
+
### Steps
|
|
212
|
+
|
|
213
|
+
1. **Mark acceptance criteria `[x]`** in the slice's tracking location:
|
|
214
|
+
- If slice has its own file: update `slices/phase-NN-slice-NN.md`
|
|
215
|
+
- If inline: update `phases/phase-NN.md`
|
|
216
|
+
|
|
217
|
+
2. **Release any claimed tasks** — if the completed task had `[!]`:
|
|
218
|
+
- Change status from `[/]` to `[x]`
|
|
219
|
+
- Remove the `[!]` flag from the task line
|
|
220
|
+
- Remove the `files:` block under the task (lock released)
|
|
221
|
+
```markdown
|
|
222
|
+
# Before (during parallel work)
|
|
223
|
+
- [/] `BE` API endpoints for user profile [!]
|
|
224
|
+
- files: src/api/users/[id].ts, src/db/queries/user.ts
|
|
225
|
+
- [x] GET endpoint
|
|
226
|
+
- [x] PUT endpoint
|
|
227
|
+
|
|
228
|
+
# After (task complete)
|
|
229
|
+
- [x] `BE` API endpoints for user profile
|
|
230
|
+
- [x] GET endpoint
|
|
231
|
+
- [x] PUT endpoint
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
3. **Mark the slice itself `[x]`** in the phase file (only when ALL tasks are `[x]`):
|
|
235
|
+
```markdown
|
|
236
|
+
- [x] **Slice 3**: Auth middleware (M) ✅ 2026-02-15
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
4. **Update phase progress** in the phase file header:
|
|
240
|
+
```markdown
|
|
241
|
+
**Status**: in-progress
|
|
242
|
+
**Progress**: 4/7 slices
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
5. **Update `index.md`** — recalculate overall progress:
|
|
246
|
+
```markdown
|
|
247
|
+
**Overall**: 12/20 slices (60%)
|
|
248
|
+
```
|
|
249
|
+
Update the phase row's status and progress count.
|
|
250
|
+
|
|
251
|
+
6. **Log implementation notes** (if slice file exists):
|
|
252
|
+
- What approach was taken
|
|
253
|
+
- Key files changed
|
|
254
|
+
- Any deviations from the plan
|
|
255
|
+
|
|
256
|
+
7. **Log blockers** encountered during implementation to `memory/blockers.md`:
|
|
257
|
+
```markdown
|
|
258
|
+
## Active Blockers
|
|
259
|
+
|
|
260
|
+
### BLK-003: Redis config missing (2026-02-15)
|
|
261
|
+
- **Slice**: Phase 2, Slice 4 — Rate limiting
|
|
262
|
+
- **Impact**: Cannot implement rate limiter without Redis connection
|
|
263
|
+
- **Needs**: VPS Redis setup or config from user
|
|
264
|
+
|
|
265
|
+
## Resolved Blockers
|
|
266
|
+
|
|
267
|
+
### BLK-002: Firebase admin SDK version conflict (2026-02-14)
|
|
268
|
+
- **Resolution**: Pinned to v12.0.0, added to package.json overrides
|
|
269
|
+
- **Resolved**: 2026-02-14
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
## Protocol 4: Pattern Extraction
|
|
275
|
+
|
|
276
|
+
**Invoked by**: End of any workflow (replaces `self-improving-agent` step)
|
|
277
|
+
|
|
278
|
+
**Purpose**: Extract reusable patterns from what just happened.
|
|
279
|
+
|
|
280
|
+
### Steps
|
|
281
|
+
|
|
282
|
+
1. **Reflect on the task**:
|
|
283
|
+
- What happened? (summary)
|
|
284
|
+
- What worked well? (repeat this)
|
|
285
|
+
- What didn't work? (avoid this)
|
|
286
|
+
- Was there a surprise or insight?
|
|
287
|
+
|
|
288
|
+
2. **Classify the pattern**:
|
|
289
|
+
|
|
290
|
+
| Classification | Criteria | Action |
|
|
291
|
+
|---------------|----------|--------|
|
|
292
|
+
| Best practice | Worked well, likely reusable | Add to patterns.md |
|
|
293
|
+
| Anti-pattern | Caused problems, should avoid | Add to patterns.md as "avoid" |
|
|
294
|
+
| Context-specific | Only applies to this situation | Log in session but don't generalize |
|
|
295
|
+
| Not significant | Routine, nothing new learned | Skip |
|
|
296
|
+
|
|
297
|
+
3. **Write to `memory/patterns.md`** (only for best-practice or anti-pattern):
|
|
298
|
+
```markdown
|
|
299
|
+
### PAT-007: Zod schema coercion for URL params (2026-02-15)
|
|
300
|
+
- **Type**: best-practice
|
|
301
|
+
- **Confidence**: 0.7 (applied 1 time)
|
|
302
|
+
- **Context**: Astro API routes receive all params as strings
|
|
303
|
+
- **Pattern**: Use `z.coerce.number()` instead of `z.number()` for URL params
|
|
304
|
+
- **Source**: Phase 2, Slice 3 implementation
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
4. **Update confidence on existing patterns** if reapplied:
|
|
308
|
+
- Increment `applied` count
|
|
309
|
+
- Increase confidence: `new_confidence = min(0.95, old + 0.1)`
|
|
310
|
+
|
|
311
|
+
5. **Post-decision pushback** — for each decision made during this workflow
|
|
312
|
+
(logged via Protocol 6 or made implicitly), challenge it with hindsight:
|
|
313
|
+
|
|
314
|
+
- **Did it hold up?** — Did implementation confirm or undermine the reasoning?
|
|
315
|
+
- **Surprises?** — Did anything unexpected happen because of this choice?
|
|
316
|
+
- **Would you choose differently now?** — With what you learned during impl, same call?
|
|
317
|
+
- **Scope creep?** — Did the decision force unplanned work or workarounds?
|
|
318
|
+
|
|
319
|
+
If the answer to "would you choose differently" is **yes**, log it as a
|
|
320
|
+
revision candidate in `memory/decisions.md` with the original decision ID:
|
|
321
|
+
```markdown
|
|
322
|
+
### DEC-004-REVIEW: Middleware decision revisited (2026-02-16)
|
|
323
|
+
- **Original**: DEC-004 — middleware over per-route auth
|
|
324
|
+
- **What changed**: Discovered 3 public routes need explicit exclusions, increasing complexity
|
|
325
|
+
- **Verdict**: Still correct, but add route-level override capability
|
|
326
|
+
- **Action**: Create follow-up slice for route exclusion config
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
If no significant decisions were made during this workflow, skip this step.
|
|
330
|
+
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
## Protocol 5: Session Close
|
|
334
|
+
|
|
335
|
+
**Invoked by**: End of session (agent should do this before signing off)
|
|
336
|
+
|
|
337
|
+
**Purpose**: Write a session log so the next session can resume cleanly.
|
|
338
|
+
|
|
339
|
+
### Steps
|
|
340
|
+
|
|
341
|
+
1. **Create `sessions/YYYY-MM-DD.md`**:
|
|
342
|
+
```markdown
|
|
343
|
+
# Session: 2026-02-15
|
|
344
|
+
|
|
345
|
+
## Context
|
|
346
|
+
- Resumed from: Phase 2, Slice 3
|
|
347
|
+
- Goal for session: Implement auth middleware + rate limiting
|
|
348
|
+
|
|
349
|
+
## Accomplished
|
|
350
|
+
- [x] Phase 2, Slice 3 — Auth middleware (complete)
|
|
351
|
+
- [x] Phase 2, Slice 3a — Token refresh logic (complete)
|
|
352
|
+
|
|
353
|
+
## Deferred
|
|
354
|
+
- [ ] Phase 2, Slice 4 — Rate limiting (blocked on Redis config)
|
|
355
|
+
|
|
356
|
+
## Patterns Learned
|
|
357
|
+
- PAT-007: Zod coercion for URL params
|
|
358
|
+
|
|
359
|
+
## Next Session
|
|
360
|
+
- Resolve BLK-003 (Redis config)
|
|
361
|
+
- Start Phase 2, Slice 4 if unblocked
|
|
362
|
+
- Otherwise skip to Phase 2, Slice 5
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
2. **If a session log for today already exists**, append to it (don't overwrite).
|
|
366
|
+
|
|
367
|
+
---
|
|
368
|
+
|
|
369
|
+
## Protocol 6: Decision Effect Analysis
|
|
370
|
+
|
|
371
|
+
**Invoked by**: Any moment a non-trivial decision needs to be made
|
|
372
|
+
|
|
373
|
+
**Purpose**: Two-pass deliberation — the Philosopher explores, the Analyst
|
|
374
|
+
stress-tests. Same questions, different lenses. They loop until they agree.
|
|
375
|
+
No code is written until convergence.
|
|
376
|
+
|
|
377
|
+
### Triage: Should This Protocol Be Invoked?
|
|
378
|
+
|
|
379
|
+
**Does this decision have upstream or downstream effects?**
|
|
380
|
+
|
|
381
|
+
- **Isolated** (UI element shape, variable name, test structure) → **Skip**. Just decide.
|
|
382
|
+
- **Has ripple effects** (touches other components, changes contracts, affects data
|
|
383
|
+
flow, sets precedent) → **Invoke**.
|
|
384
|
+
|
|
385
|
+
Rule of thumb: if changing this later requires editing more than the current file,
|
|
386
|
+
it has ripple effects.
|
|
387
|
+
|
|
388
|
+
### Pass 1: The Philosopher
|
|
389
|
+
|
|
390
|
+
1. **What are the project's established guidelines and protocols for this?**
|
|
391
|
+
Read the relevant rules, instructions, specs, and existing patterns.
|
|
392
|
+
|
|
393
|
+
2. **What are the different ways to accomplish this within those guidelines?**
|
|
394
|
+
List at least 3 viable approaches (forcing function against first-idea bias).
|
|
395
|
+
|
|
396
|
+
3. **What are the pros and cons of each?**
|
|
397
|
+
Be specific — name concrete trade-offs, not vague qualities.
|
|
398
|
+
|
|
399
|
+
4. **Which one is the clear winner and why?**
|
|
400
|
+
State the recommendation with reasoning.
|
|
401
|
+
|
|
402
|
+
### Pass 2: The Devil's Advocate
|
|
403
|
+
|
|
404
|
+
Take the Philosopher's recommendation and **try to find flaws in it**:
|
|
405
|
+
|
|
406
|
+
1. **What are the project's established guidelines and protocols for this?**
|
|
407
|
+
Did the Philosopher miss any? Misinterpret any?
|
|
408
|
+
|
|
409
|
+
2. **What are the different ways to accomplish this within those guidelines?**
|
|
410
|
+
Review the options the Philosopher considered. Did they overlook any?
|
|
411
|
+
|
|
412
|
+
3. **What are the pros and cons of each?**
|
|
413
|
+
Did the Philosopher underweight a con or overweight a pro?
|
|
414
|
+
Are there hidden costs they didn't surface?
|
|
415
|
+
|
|
416
|
+
4. **Do I agree with the Philosopher's recommendation, or is there a better way?**
|
|
417
|
+
- **If agree** → proceed to Record step
|
|
418
|
+
- **If disagree** → state what's better and why, then **push findings back
|
|
419
|
+
to the Philosopher** for another pass
|
|
420
|
+
|
|
421
|
+
### Convergence Loop
|
|
422
|
+
|
|
423
|
+
If the Devil's Advocate disagrees, the Philosopher reviews those findings and
|
|
424
|
+
re-evaluates. The Devil's Advocate then scrutinizes again. **Repeat until both
|
|
425
|
+
agree.**
|
|
426
|
+
|
|
427
|
+
They are twins with different jobs — the Philosopher explores and proposes,
|
|
428
|
+
the Devil's Advocate stress-tests and finds flaws. Together they catch blind spots.
|
|
429
|
+
|
|
430
|
+
### Record
|
|
431
|
+
|
|
432
|
+
Once converged, write to `memory/decisions.md`:
|
|
433
|
+
```markdown
|
|
434
|
+
### DEC-004: Use middleware over per-route auth (2026-02-15)
|
|
435
|
+
- **Problem**: 12+ routes need identical auth enforcement
|
|
436
|
+
- **Guidelines checked**: security-first rule, extensibility rule, DRY principle
|
|
437
|
+
- **Options considered**: Per-route checks, middleware, decorator pattern
|
|
438
|
+
- **Decision**: Middleware — single enforcement point
|
|
439
|
+
- **Philosopher reasoning**: DRY, single place to enforce and audit
|
|
440
|
+
- **Devil's Advocate concurrence**: Agreed — per-route is a security risk (forgotten routes)
|
|
441
|
+
- **Upstream**: Depends on Firebase Admin SDK token verification
|
|
442
|
+
- **Downstream**: All future routes auto-protected; public routes need opt-out
|
|
443
|
+
- **Reversibility**: Medium — mechanical but touches every route file
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
### Proceed
|
|
447
|
+
|
|
448
|
+
The decision is justified, stress-tested, and recorded. Implement it.
|
|
449
|
+
|
|
450
|
+
---
|
|
451
|
+
|
|
452
|
+
## Protocol 7: Spec Pipeline Generation
|
|
453
|
+
|
|
454
|
+
**Invoked by**: `/decompose-architecture` (after creating indexes)
|
|
455
|
+
|
|
456
|
+
**Purpose**: Create a spec pipeline tracker so you always know which shards
|
|
457
|
+
have IA specs, BE specs, and FE specs completed.
|
|
458
|
+
|
|
459
|
+
### Steps
|
|
460
|
+
|
|
461
|
+
1. **Read the IA index** — `docs/plans/ia/index.md` — to get the list of shards.
|
|
462
|
+
|
|
463
|
+
2. **Create `.agent/progress/spec-pipeline.md`**:
|
|
464
|
+
```markdown
|
|
465
|
+
# Spec Pipeline Progress
|
|
466
|
+
|
|
467
|
+
**Project**: {{PROJECT_NAME}}
|
|
468
|
+
**Last updated**: {{DATE}}
|
|
469
|
+
**Overall**: 0/{{N×3}} specs (0%)
|
|
470
|
+
|
|
471
|
+
## Shard Spec Status
|
|
472
|
+
|
|
473
|
+
| # | Shard | IA Spec | BE Spec | FE Spec |
|
|
474
|
+
|---|-------|---------|---------|---------|
|
|
475
|
+
| 00 | {{shard-name}} | ❌ | ❌ | ❌ |
|
|
476
|
+
| 01 | {{shard-name}} | ❌ | ❌ | ❌ |
|
|
477
|
+
| ... | ... | ... | ... | ... |
|
|
478
|
+
|
|
479
|
+
## Spec Completion Tracking
|
|
480
|
+
|
|
481
|
+
Shards with all three specs complete (tracking only — /plan-phase requires ALL shards to be complete, not just individual ones):
|
|
482
|
+
- (none yet)
|
|
483
|
+
```
|
|
484
|
+
|
|
485
|
+
3. **Initialize memory files** if they don't exist (same as Protocol 2, step 5).
|
|
486
|
+
|
|
487
|
+
---
|
|
488
|
+
|
|
489
|
+
## Protocol 8: Spec Pipeline Update
|
|
490
|
+
|
|
491
|
+
**Invoked by**: `/write-architecture-spec`, `/write-be-spec`, `/write-fe-spec`
|
|
492
|
+
(after updating the layer index)
|
|
493
|
+
|
|
494
|
+
**Purpose**: Mark a spec column done and report pipeline progress.
|
|
495
|
+
|
|
496
|
+
### Steps
|
|
497
|
+
|
|
498
|
+
1. **Identify the shard and layer** — which shard just got its spec completed,
|
|
499
|
+
and which layer (IA, BE, or FE)?
|
|
500
|
+
|
|
501
|
+
2. **Update `spec-pipeline.md`** — change the relevant ❌ to ✅:
|
|
502
|
+
```markdown
|
|
503
|
+
| 03 | user-profiles | ✅ | ✅ | ❌ |
|
|
504
|
+
```
|
|
505
|
+
|
|
506
|
+
3. **Recalculate overall progress**:
|
|
507
|
+
```markdown
|
|
508
|
+
**Overall**: 8/45 specs (18%)
|
|
509
|
+
```
|
|
510
|
+
|
|
511
|
+
4. **Update "Spec Completion Tracking"** — if a shard now has all three specs
|
|
512
|
+
complete (IA ✅ + BE ✅ + FE ✅), add it to the completion tracking list. Note: /plan-phase requires ALL shards to be complete, not just this one.
|
|
513
|
+
```markdown
|
|
514
|
+
## Spec Completion Tracking
|
|
515
|
+
|
|
516
|
+
Shards with all three specs complete (tracking only — /plan-phase requires ALL shards to be complete, not just individual ones):
|
|
517
|
+
- ✅ Shard 00: API conventions
|
|
518
|
+
- ✅ Shard 01: Authentication
|
|
519
|
+
```
|
|
520
|
+
|
|
521
|
+
5. **Report status** — log what was completed and what's next.
|
|
522
|
+
|
|
523
|
+
---
|
|
524
|
+
|
|
525
|
+
## Ambiguity Gates (Micro + Macro)
|
|
526
|
+
|
|
527
|
+
**Invoked by**: Every `write-*-spec` workflow, before "Request review"
|
|
528
|
+
|
|
529
|
+
**Purpose**: Ensure no guesses pass downstream. Two levels:
|
|
530
|
+
|
|
531
|
+
### Micro Ambiguity Check
|
|
532
|
+
|
|
533
|
+
Walk **each individual element** in the spec and ask:
|
|
534
|
+
> "Would an implementer need to guess about this?"
|
|
535
|
+
|
|
536
|
+
| Workflow | What to check |
|
|
537
|
+
|----------|---------------|
|
|
538
|
+
| `/write-architecture-spec` | Each feature, interaction, data model field, access rule, edge case |
|
|
539
|
+
| `/write-be-spec` | Each endpoint, request/response field, error code, schema constraint, middleware rule |
|
|
540
|
+
| `/write-fe-spec` | Each component, prop, interaction, state transition, responsive breakpoint, a11y rule |
|
|
541
|
+
|
|
542
|
+
For every element where the answer is "yes" → **fix it now**. Add the missing
|
|
543
|
+
detail, type, behavior, or constraint. Don't flag it — resolve it.
|
|
544
|
+
|
|
545
|
+
### Macro Ambiguity Check
|
|
546
|
+
|
|
547
|
+
Step back and ask about the **entire spec**:
|
|
548
|
+
> "Does the next downstream phase have everything it needs?"
|
|
549
|
+
|
|
550
|
+
| Workflow | Downstream question |
|
|
551
|
+
|----------|--------------------|
|
|
552
|
+
| `/write-architecture-spec` | Would the BE spec writer need to guess anything from this IA shard? |
|
|
553
|
+
| `/write-be-spec` | Would the FE spec writer need to guess anything from this BE spec? |
|
|
554
|
+
| `/write-fe-spec` | Would an implementer running `/implement-slice` need to guess anything? |
|
|
555
|
+
|
|
556
|
+
If the answer is "yes" → **fix it now**. The spec is not complete until the
|
|
557
|
+
downstream phase can work from it without assumptions.
|
|
558
|
+
|
|
559
|
+
### Relationship to `/audit-ambiguity`
|
|
560
|
+
|
|
561
|
+
The ambiguity gates are **inline, lightweight, fix-it-now** checks. The
|
|
562
|
+
`/audit-ambiguity` workflow is a **standalone, scored, report-generating**
|
|
563
|
+
audit you run across multiple documents at once. They complement each other:
|
|
564
|
+
|
|
565
|
+
- Gates: prevent ambiguity from entering (at write time)
|
|
566
|
+
- Audit: detect ambiguity that slipped through (after the fact)
|
|
567
|
+
|
|
568
|
+
---
|
|
569
|
+
|
|
570
|
+
## Protocol 9: Parallel Claim
|
|
571
|
+
|
|
572
|
+
**Invoked by**: `/implement-slice` step 1.5 (parallel dispatch)
|
|
573
|
+
|
|
574
|
+
**Purpose**: Coordinate parallel agent ownership of tasks using claim markers
|
|
575
|
+
and file-level locks. Prevents two agents from modifying the same files.
|
|
576
|
+
|
|
577
|
+
### Concepts
|
|
578
|
+
|
|
579
|
+
| Concept | Description |
|
|
580
|
+
|---------|-------------|
|
|
581
|
+
| **Surface tag** | `BE`, `FE`, or `QA` prefix on a task, determines which agent type handles it |
|
|
582
|
+
| **Claim flag `[!]`** | Appended to a task line — means an agent owns this task and all subtasks |
|
|
583
|
+
| **`files:` block** | Listed directly under a claimed task — hard lock on those files |
|
|
584
|
+
| **Frozen files** | Files no parallel agent may touch — see Frozen Files list below |
|
|
585
|
+
|
|
586
|
+
### Frozen Files
|
|
587
|
+
|
|
588
|
+
Files no parallel agent may touch:
|
|
589
|
+
|
|
590
|
+
- `package.json` (or equivalent dependency manifest for the project's package manager)
|
|
591
|
+
- `{{PACKAGE_MANAGER}}` lock file (e.g., `pnpm-lock.yaml`, `yarn.lock`, `package-lock.json`)
|
|
592
|
+
- `{{FRONTEND_FRAMEWORK}}` config file (e.g., `astro.config.mjs`, `next.config.js`, `vite.config.ts`)
|
|
593
|
+
- `{{CONTRACTS_DIR}}` (e.g., `src/contracts/*`)
|
|
594
|
+
- Language config file (e.g., `tsconfig.json` for TypeScript, `pyproject.toml` for Python)
|
|
595
|
+
- `.env`
|
|
596
|
+
|
|
597
|
+
### Claiming a Task
|
|
598
|
+
|
|
599
|
+
When an agent is dispatched to a surface-tagged task:
|
|
600
|
+
|
|
601
|
+
1. **Change status** from `[ ]` to `[/]`
|
|
602
|
+
2. **Append `[!]`** to the end of the task line
|
|
603
|
+
3. **Write `files:` block** directly under the task line, listing every file the agent will modify:
|
|
604
|
+
```markdown
|
|
605
|
+
- [/] `BE` API endpoints for user profile [!]
|
|
606
|
+
- files: src/api/users/[id].ts, src/db/queries/user.ts
|
|
607
|
+
- [ ] GET /api/users/:id
|
|
608
|
+
- [ ] PUT /api/users/:id
|
|
609
|
+
```
|
|
610
|
+
4. **Subtasks inherit the claim** — the agent owns all nested items under the claimed task
|
|
611
|
+
|
|
612
|
+
### Collision Check
|
|
613
|
+
|
|
614
|
+
Before dispatching agents, the orchestrator must verify no file overlap:
|
|
615
|
+
|
|
616
|
+
1. **Collect `files:` lists** from all tasks about to be claimed
|
|
617
|
+
2. **Check intersection** — if any file appears in more than one list:
|
|
618
|
+
- **Same tag** → merge tasks (shouldn't happen if planned well)
|
|
619
|
+
- **Different tags** → cannot parallelize. Run sequentially, assign to
|
|
620
|
+
whichever tag owns the majority of files
|
|
621
|
+
3. **Check frozen files** — if any agent's `files:` list includes a frozen file,
|
|
622
|
+
reject the claim and require a `// BOUNDARY:` stub approach instead
|
|
623
|
+
4. **Empty intersection** → ✅ safe to dispatch in parallel
|
|
624
|
+
|
|
625
|
+
### Releasing a Task
|
|
626
|
+
|
|
627
|
+
When an agent completes all subtasks under a claimed task:
|
|
628
|
+
|
|
629
|
+
1. **Change status** from `[/]` to `[x]`
|
|
630
|
+
2. **Remove `[!]`** from the task line
|
|
631
|
+
3. **Remove the `files:` block** (lock released)
|
|
632
|
+
4. All subtasks should be `[x]`
|
|
633
|
+
|
|
634
|
+
See Protocol 3 (Progress Update) step 2 for the exact format.
|
|
635
|
+
|
|
636
|
+
### Dependency Rules (TDD Order)
|
|
637
|
+
|
|
638
|
+
> **Tests are the rock. Code is malleable.** If tests fail, the code changes —
|
|
639
|
+
> never the tests. Shallow or simplified tests that force passing results are
|
|
640
|
+
> the single greatest failure mode. Comprehensive tests are non-negotiable.
|
|
641
|
+
|
|
642
|
+
The dependency chain follows strict TDD: Red → Green → Verify.
|
|
643
|
+
|
|
644
|
+
| Phase | Tag | What Happens | Depends On |
|
|
645
|
+
|-------|-----|-------------|------------|
|
|
646
|
+
| 1. Contract | (untagged) | Orchestrator writes Zod schemas | Nothing |
|
|
647
|
+
| 2. QA-RED | `QA` | Write comprehensive failing tests from acceptance criteria | Contract `[x]` |
|
|
648
|
+
| 3. BE + FE | `BE`, `FE` | Implement in parallel to make tests pass | QA-RED `[x]` |
|
|
649
|
+
| 4. QA-GREEN | `QA` | Second pass — verify all tests pass, check for cheating, add integration/E2E | BE `[x]` + FE `[x]` |
|
|
650
|
+
|
|
651
|
+
### Iterative Correction Loop
|
|
652
|
+
|
|
653
|
+
If QA-GREEN finds failures:
|
|
654
|
+
|
|
655
|
+
1. **Never weaken or simplify tests** — tests encode the acceptance criteria
|
|
656
|
+
2. **Report failures** to orchestrator with specific test names and error output
|
|
657
|
+
3. **Orchestrator re-dispatches** `BE` and/or `FE` agents to fix failing code
|
|
658
|
+
4. **QA-GREEN runs again** — repeat until all tests pass
|
|
659
|
+
5. **Only the orchestrator may terminate the loop** — agents cannot declare "good enough"
|
|
660
|
+
|
|
661
|
+
```
|
|
662
|
+
Contract → QA-RED → BE+FE (parallel) → QA-GREEN
|
|
663
|
+
↓
|
|
664
|
+
Tests pass? ──Yes──→ Slice complete
|
|
665
|
+
↓ No
|
|
666
|
+
Re-dispatch BE/FE → QA-GREEN (repeat)
|
|
667
|
+
```
|
|
668
|
+
|
|
669
|
+
### Stale Lock Recovery
|
|
670
|
+
|
|
671
|
+
If an agent crashes mid-task (leaving `[!]` without completing):
|
|
672
|
+
|
|
673
|
+
1. **Manual cleanup**: User or orchestrator resets the task from `[/]` to `[ ]`,
|
|
674
|
+
removes `[!]` and `files:` block
|
|
675
|
+
2. **Subtask state preserved**: Any subtasks already marked `[x]` remain — the
|
|
676
|
+
new agent picks up from the first `[ ]` subtask
|
|
677
|
+
3. **Prevention**: Agents should update subtask status incrementally, not batch
|
|
678
|
+
at the end
|
|
679
|
+
|
|
680
|
+
### Level Hierarchy Reference
|
|
681
|
+
|
|
682
|
+
```
|
|
683
|
+
Level 1: Phase [ ] [/] [x] — no tags, no [!]
|
|
684
|
+
Level 2: Slice [ ] [/] [x] — no tags, no [!]
|
|
685
|
+
Level 3: Task [ ] [/] [x] + [!] — has BE/FE/QA tag, claimable
|
|
686
|
+
Level 4+: Subtask [ ] [/] [x] — no [!], owned by parent task's agent
|
|
687
|
+
```
|
|
688
|
+
|
|
689
|
+
---
|
|
690
|
+
|
|
691
|
+
## Integration Points
|
|
692
|
+
|
|
693
|
+
Workflows reference this skill's protocols, not its internals:
|
|
694
|
+
|
|
695
|
+
| Workflow | Step | Protocol |
|
|
696
|
+
|----------|------|----------|
|
|
697
|
+
| `instructions/workflow.md` | Step 1 (context) | Session Resumption |
|
|
698
|
+
| `/decompose-architecture` | After creating indexes | Spec Pipeline Generation |
|
|
699
|
+
| `/write-architecture-spec` | After updating IA index | Spec Pipeline Update |
|
|
700
|
+
| `/write-architecture-spec` | Before request review | Ambiguity Gates (micro + macro) |
|
|
701
|
+
| `/write-architecture-spec` | During design choices | Decision Effect Analysis |
|
|
702
|
+
| `/write-be-spec` | After updating BE index | Spec Pipeline Update |
|
|
703
|
+
| `/write-be-spec` | Before request review | Ambiguity Gates (micro + macro) |
|
|
704
|
+
| `/write-fe-spec` | After updating FE index | Spec Pipeline Update |
|
|
705
|
+
| `/write-fe-spec` | Before request review | Ambiguity Gates (micro + macro) |
|
|
706
|
+
| `/plan-phase` | Step 7 | Progress Generation |
|
|
707
|
+
| `/create-prd` | During design choices | Decision Effect Analysis |
|
|
708
|
+
| `/implement-slice` | Step 0 | Session Resumption |
|
|
709
|
+
| `/implement-slice` | Step 1.5 | Parallel Claim |
|
|
710
|
+
| `/implement-slice` | Step 4 (during impl) | Decision Effect Analysis |
|
|
711
|
+
| `/implement-slice` | Step 7 | Progress Update (incl. claim release) |
|
|
712
|
+
| `/fix-bug` | End | Pattern Extraction |
|
|
713
|
+
| `/refactor` | End | Pattern Extraction |
|
|
714
|
+
| Any workflow | End | Pattern Extraction + Session Close |
|
|
715
|
+
|
|
716
|
+
## DO / DON'T
|
|
717
|
+
|
|
718
|
+
### DO
|
|
719
|
+
- ✅ Create progress files that mirror spec depth exactly
|
|
720
|
+
- ✅ Mark items immediately when complete (never defer check-offs)
|
|
721
|
+
- ✅ Log blockers the moment they're encountered
|
|
722
|
+
- ✅ Write session close log before ending any session
|
|
723
|
+
- ✅ Only add patterns with genuine reuse value
|
|
724
|
+
|
|
725
|
+
### DON'T
|
|
726
|
+
- ❌ Over-generalize from a single experience (set confidence low)
|
|
727
|
+
- ❌ Create slice files for trivial slices (< 3 criteria)
|
|
728
|
+
- ❌ Skip session resumption at workflow start
|
|
729
|
+
- ❌ Let progress files drift from actual state
|
|
730
|
+
- ❌ Log every minor observation as a "pattern"
|