@nextsparkjs/ai-workflow 0.1.0-beta.100
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/LICENSE +21 -0
- package/README.md +115 -0
- package/claude/_docs/workflows-optimizations.md +359 -0
- package/claude/agents/api-tester.md +634 -0
- package/claude/agents/architecture-supervisor.md +1351 -0
- package/claude/agents/backend-developer.md +997 -0
- package/claude/agents/backend-validator.md +417 -0
- package/claude/agents/bdd-docs-writer.md +737 -0
- package/claude/agents/block-developer.md +677 -0
- package/claude/agents/code-reviewer.md +1432 -0
- package/claude/agents/db-developer.md +721 -0
- package/claude/agents/db-validator.md +407 -0
- package/claude/agents/demo-video-generator.md +493 -0
- package/claude/agents/documentation-writer.md +1268 -0
- package/claude/agents/frontend-developer.md +1234 -0
- package/claude/agents/frontend-validator.md +777 -0
- package/claude/agents/functional-validator.md +630 -0
- package/claude/agents/mock-analyst.md +387 -0
- package/claude/agents/product-manager.md +963 -0
- package/claude/agents/qa-automation.md +1762 -0
- package/claude/agents/release-manager.md +634 -0
- package/claude/agents/selectors-translator.md +262 -0
- package/claude/agents/unit-test-writer.md +785 -0
- package/claude/agents/visual-comparator.md +329 -0
- package/claude/agents/workflow-maintainer.md +352 -0
- package/claude/commands/do/README.md +88 -0
- package/claude/commands/do/create-api.md +64 -0
- package/claude/commands/do/create-entity.md +66 -0
- package/claude/commands/do/create-migration.md +64 -0
- package/claude/commands/do/create-plugin.md +56 -0
- package/claude/commands/do/create-theme.md +70 -0
- package/claude/commands/do/mock-data.md +67 -0
- package/claude/commands/do/reset-db.md +71 -0
- package/claude/commands/do/setup-scheduled-action.md +75 -0
- package/claude/commands/do/sync-code-review.md +117 -0
- package/claude/commands/do/update-selectors.md +112 -0
- package/claude/commands/do/use-skills.md +90 -0
- package/claude/commands/do/validate-blocks.md +69 -0
- package/claude/commands/how-to/README.md +261 -0
- package/claude/commands/how-to/add-metadata.md +692 -0
- package/claude/commands/how-to/add-taxonomies.md +806 -0
- package/claude/commands/how-to/add-translations.md +571 -0
- package/claude/commands/how-to/create-api.md +577 -0
- package/claude/commands/how-to/create-block.md +575 -0
- package/claude/commands/how-to/create-child-entities.md +771 -0
- package/claude/commands/how-to/create-entity.md +597 -0
- package/claude/commands/how-to/create-migrations.md +605 -0
- package/claude/commands/how-to/create-plugin.md +654 -0
- package/claude/commands/how-to/customize-app.md +481 -0
- package/claude/commands/how-to/customize-dashboard.md +553 -0
- package/claude/commands/how-to/customize-theme.md +438 -0
- package/claude/commands/how-to/define-features-flows.md +632 -0
- package/claude/commands/how-to/deploy.md +507 -0
- package/claude/commands/how-to/handle-file-uploads.md +746 -0
- package/claude/commands/how-to/implement-search.md +1001 -0
- package/claude/commands/how-to/install-plugins.md +352 -0
- package/claude/commands/how-to/manage-test-coverage.md +984 -0
- package/claude/commands/how-to/run-tests.md +400 -0
- package/claude/commands/how-to/set-app-languages.md +601 -0
- package/claude/commands/how-to/set-plans-and-permissions.md +575 -0
- package/claude/commands/how-to/set-scheduled-actions.md +527 -0
- package/claude/commands/how-to/set-user-roles-and-permissions.md +550 -0
- package/claude/commands/how-to/setup-authentication.md +388 -0
- package/claude/commands/how-to/setup-claude-code.md +440 -0
- package/claude/commands/how-to/setup-database.md +274 -0
- package/claude/commands/how-to/setup-email-providers.md +598 -0
- package/claude/commands/how-to/setup-mobile-dev.md +627 -0
- package/claude/commands/how-to/start.md +500 -0
- package/claude/commands/how-to/use-devtools.md +639 -0
- package/claude/commands/how-to/use-superadmin.md +622 -0
- package/claude/commands/session/README.md +193 -0
- package/claude/commands/session/block-create.md +190 -0
- package/claude/commands/session/block-list.md +203 -0
- package/claude/commands/session/block-update.md +192 -0
- package/claude/commands/session/block-validate.md +218 -0
- package/claude/commands/session/changelog.md +115 -0
- package/claude/commands/session/close.md +225 -0
- package/claude/commands/session/commit.md +174 -0
- package/claude/commands/session/db-entity.md +206 -0
- package/claude/commands/session/db-fix.md +212 -0
- package/claude/commands/session/db-sample.md +206 -0
- package/claude/commands/session/demo.md +178 -0
- package/claude/commands/session/doc-bdd.md +207 -0
- package/claude/commands/session/doc-feature.md +218 -0
- package/claude/commands/session/doc-read.md +225 -0
- package/claude/commands/session/execute.md +204 -0
- package/claude/commands/session/explain.md +202 -0
- package/claude/commands/session/fix-bug.md +210 -0
- package/claude/commands/session/fix-build.md +182 -0
- package/claude/commands/session/fix-test.md +189 -0
- package/claude/commands/session/pending.md +232 -0
- package/claude/commands/session/refine.md +188 -0
- package/claude/commands/session/resume.md +192 -0
- package/claude/commands/session/review.md +192 -0
- package/claude/commands/session/scope-change.md +181 -0
- package/claude/commands/session/start-blocks.md +347 -0
- package/claude/commands/session/start.md +604 -0
- package/claude/commands/session/status.md +169 -0
- package/claude/commands/session/test-fix.md +221 -0
- package/claude/commands/session/test-run.md +203 -0
- package/claude/commands/session/test-write.md +242 -0
- package/claude/commands/session/validate.md +162 -0
- package/claude/config/context.json +40 -0
- package/claude/config/github.json +69 -0
- package/claude/config/github.schema.json +106 -0
- package/claude/config/team.json +46 -0
- package/claude/config/team.schema.json +106 -0
- package/claude/config/workspace.json +43 -0
- package/claude/config/workspace.schema.json +75 -0
- package/claude/skills/README.md +228 -0
- package/claude/skills/accessibility/SKILL.md +573 -0
- package/claude/skills/api-bypass-layers/SKILL.md +550 -0
- package/claude/skills/asana-integration/SKILL.md +499 -0
- package/claude/skills/better-auth/SKILL.md +666 -0
- package/claude/skills/billing-subscriptions/SKILL.md +660 -0
- package/claude/skills/block-decision-matrix/SKILL.md +359 -0
- package/claude/skills/clickup-integration/SKILL.md +434 -0
- package/claude/skills/core-theme-responsibilities/SKILL.md +485 -0
- package/claude/skills/create-plugin/SKILL.md +425 -0
- package/claude/skills/create-theme/SKILL.md +331 -0
- package/claude/skills/cypress-api/SKILL.md +511 -0
- package/claude/skills/cypress-api/scripts/generate-api-controller.py +329 -0
- package/claude/skills/cypress-api/scripts/generate-api-test.py +930 -0
- package/claude/skills/cypress-e2e/SKILL.md +526 -0
- package/claude/skills/cypress-e2e/scripts/extract-selectors.py +383 -0
- package/claude/skills/cypress-e2e/scripts/generate-uat-test.py +788 -0
- package/claude/skills/cypress-selectors/SKILL.md +309 -0
- package/claude/skills/cypress-selectors/scripts/extract-missing.py +243 -0
- package/claude/skills/cypress-selectors/scripts/generate-block-selectors.py +283 -0
- package/claude/skills/cypress-selectors/scripts/validate-selectors.py +145 -0
- package/claude/skills/database-migrations/SKILL.md +335 -0
- package/claude/skills/database-migrations/scripts/generate-sample-data.py +284 -0
- package/claude/skills/database-migrations/scripts/validate-migration.py +323 -0
- package/claude/skills/design-system/SKILL.md +682 -0
- package/claude/skills/documentation/SKILL.md +540 -0
- package/claude/skills/entity-api/SKILL.md +482 -0
- package/claude/skills/entity-system/SKILL.md +635 -0
- package/claude/skills/entity-system/scripts/generate-child-migration.py +298 -0
- package/claude/skills/entity-system/scripts/generate-metas-migration.py +233 -0
- package/claude/skills/entity-system/scripts/generate-migration.py +382 -0
- package/claude/skills/entity-system/scripts/generate-sample-data.py +418 -0
- package/claude/skills/entity-system/scripts/scaffold-entity.py +661 -0
- package/claude/skills/github/SKILL.md +467 -0
- package/claude/skills/i18n-nextintl/SKILL.md +302 -0
- package/claude/skills/i18n-nextintl/scripts/add-translation.py +243 -0
- package/claude/skills/i18n-nextintl/scripts/extract-hardcoded.py +246 -0
- package/claude/skills/i18n-nextintl/scripts/validate-translations.py +260 -0
- package/claude/skills/impact-analysis/SKILL.md +203 -0
- package/claude/skills/jest-unit/SKILL.md +306 -0
- package/claude/skills/jest-unit/references/component-testing.md +371 -0
- package/claude/skills/jest-unit/references/mocking-patterns.md +380 -0
- package/claude/skills/jest-unit/references/service-hook-testing.md +454 -0
- package/claude/skills/jira-integration/SKILL.md +539 -0
- package/claude/skills/media-library/SKILL.md +743 -0
- package/claude/skills/mock-analysis/SKILL.md +276 -0
- package/claude/skills/monorepo-architecture/SKILL.md +162 -0
- package/claude/skills/nextjs-api-development/SKILL.md +364 -0
- package/claude/skills/nextjs-api-development/scripts/generate-crud-tests.py +456 -0
- package/claude/skills/nextjs-api-development/scripts/scaffold-endpoint.py +481 -0
- package/claude/skills/nextjs-api-development/scripts/validate-api.py +283 -0
- package/claude/skills/notion-integration/SKILL.md +641 -0
- package/claude/skills/npm-development-workflow/SKILL.md +480 -0
- package/claude/skills/page-builder-blocks/SKILL.md +530 -0
- package/claude/skills/page-builder-blocks/scripts/scaffold-block.py +444 -0
- package/claude/skills/permissions-system/SKILL.md +619 -0
- package/claude/skills/plugins/SKILL.md +340 -0
- package/claude/skills/plugins/references/plugin-templates.md +414 -0
- package/claude/skills/plugins/references/plugin-testing.md +353 -0
- package/claude/skills/plugins/references/plugin-types.md +198 -0
- package/claude/skills/plugins/scripts/scaffold-plugin.py +443 -0
- package/claude/skills/pom-patterns/SKILL.md +452 -0
- package/claude/skills/pom-patterns/scripts/generate-pom.py +392 -0
- package/claude/skills/rate-limiting/SKILL.md +342 -0
- package/claude/skills/react-best-practices/AGENTS.md +2410 -0
- package/claude/skills/react-best-practices/README.md +123 -0
- package/claude/skills/react-best-practices/SKILL.md +125 -0
- package/claude/skills/react-best-practices/metadata.json +15 -0
- package/claude/skills/react-best-practices/rules/_sections.md +46 -0
- package/claude/skills/react-best-practices/rules/_template.md +28 -0
- package/claude/skills/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/claude/skills/react-best-practices/rules/advanced-use-latest.md +49 -0
- package/claude/skills/react-best-practices/rules/async-api-routes.md +38 -0
- package/claude/skills/react-best-practices/rules/async-defer-await.md +80 -0
- package/claude/skills/react-best-practices/rules/async-dependencies.md +36 -0
- package/claude/skills/react-best-practices/rules/async-parallel.md +28 -0
- package/claude/skills/react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/claude/skills/react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/claude/skills/react-best-practices/rules/bundle-conditional.md +31 -0
- package/claude/skills/react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/claude/skills/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/claude/skills/react-best-practices/rules/bundle-preload.md +50 -0
- package/claude/skills/react-best-practices/rules/client-event-listeners.md +74 -0
- package/claude/skills/react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/claude/skills/react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/claude/skills/react-best-practices/rules/client-swr-dedup.md +56 -0
- package/claude/skills/react-best-practices/rules/js-batch-dom-css.md +82 -0
- package/claude/skills/react-best-practices/rules/js-cache-function-results.md +80 -0
- package/claude/skills/react-best-practices/rules/js-cache-property-access.md +28 -0
- package/claude/skills/react-best-practices/rules/js-cache-storage.md +70 -0
- package/claude/skills/react-best-practices/rules/js-combine-iterations.md +32 -0
- package/claude/skills/react-best-practices/rules/js-early-exit.md +50 -0
- package/claude/skills/react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/claude/skills/react-best-practices/rules/js-index-maps.md +37 -0
- package/claude/skills/react-best-practices/rules/js-length-check-first.md +49 -0
- package/claude/skills/react-best-practices/rules/js-min-max-loop.md +82 -0
- package/claude/skills/react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/claude/skills/react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/claude/skills/react-best-practices/rules/rendering-activity.md +26 -0
- package/claude/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/claude/skills/react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/claude/skills/react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/claude/skills/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/claude/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/claude/skills/react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/claude/skills/react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/claude/skills/react-best-practices/rules/rerender-dependencies.md +45 -0
- package/claude/skills/react-best-practices/rules/rerender-derived-state.md +29 -0
- package/claude/skills/react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/claude/skills/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/claude/skills/react-best-practices/rules/rerender-memo.md +44 -0
- package/claude/skills/react-best-practices/rules/rerender-transitions.md +40 -0
- package/claude/skills/react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/claude/skills/react-best-practices/rules/server-cache-lru.md +41 -0
- package/claude/skills/react-best-practices/rules/server-cache-react.md +76 -0
- package/claude/skills/react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/claude/skills/react-best-practices/rules/server-serialization.md +38 -0
- package/claude/skills/react-patterns/SKILL.md +688 -0
- package/claude/skills/registry-system/SKILL.md +331 -0
- package/claude/skills/scheduled-actions/SKILL.md +671 -0
- package/claude/skills/scope-enforcement/SKILL.md +542 -0
- package/claude/skills/scope-enforcement/scripts/validate-scope.py +357 -0
- package/claude/skills/server-actions/SKILL.md +493 -0
- package/claude/skills/service-layer/SKILL.md +587 -0
- package/claude/skills/session-management/SKILL.md +266 -0
- package/claude/skills/session-management/scripts/create-session.py +166 -0
- package/claude/skills/session-management/scripts/iteration-close.sh +105 -0
- package/claude/skills/session-management/scripts/iteration-init.sh +180 -0
- package/claude/skills/session-management/scripts/session-archive.sh +87 -0
- package/claude/skills/session-management/scripts/session-close.sh +133 -0
- package/claude/skills/session-management/scripts/session-init.sh +225 -0
- package/claude/skills/session-management/scripts/session-list.sh +163 -0
- package/claude/skills/session-management/scripts/split-plan.sh +116 -0
- package/claude/skills/shadcn-components/SKILL.md +586 -0
- package/claude/skills/shadcn-theming/SKILL.md +446 -0
- package/claude/skills/suspense-loading/SKILL.md +280 -0
- package/claude/skills/tailwind-theming/SKILL.md +507 -0
- package/claude/skills/tanstack-query/SKILL.md +608 -0
- package/claude/skills/test-coverage/SKILL.md +239 -0
- package/claude/skills/web-design-guidelines/SKILL.md +39 -0
- package/claude/skills/zod-validation/SKILL.md +537 -0
- package/claude/templates/blocks/progress.md +86 -0
- package/claude/templates/iteration/changes.md +61 -0
- package/claude/templates/iteration/progress.md +55 -0
- package/claude/templates/log.md +31 -0
- package/claude/templates/story/context.md +77 -0
- package/claude/templates/story/pendings.md +37 -0
- package/claude/templates/story/plan.md +299 -0
- package/claude/templates/story/requirements.md +109 -0
- package/claude/templates/story/scope.json +10 -0
- package/claude/templates/story/tests.md +91 -0
- package/claude/templates/task/progress.md +58 -0
- package/claude/templates/task/requirements.md +54 -0
- package/claude/workflows/README.md +154 -0
- package/claude/workflows/blocks.md +614 -0
- package/claude/workflows/story.md +1207 -0
- package/claude/workflows/task.md +927 -0
- package/claude/workflows/tweak.md +527 -0
- package/cursor/.gitkeep +0 -0
- package/package.json +35 -0
- package/scripts/postinstall.mjs +198 -0
- package/scripts/setup.mjs +282 -0
- package/scripts/sync.mjs +209 -0
|
@@ -0,0 +1,1207 @@
|
|
|
1
|
+
# STORY Workflow v1.0
|
|
2
|
+
|
|
3
|
+
**T-Shirt Size:** L - XL
|
|
4
|
+
**Session:** `stories/`
|
|
5
|
+
**Subagents:** Specialized per phase (8-10)
|
|
6
|
+
**Duration:** 1-5 hours
|
|
7
|
+
**Token Estimate:** 120-350k
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
|
|
13
|
+
The STORY workflow is designed for complex features that require database changes, full CRUD implementation, multiple validation gates, and comprehensive documentation. It provides maximum structure and quality assurance.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Initial Questions (All 7)
|
|
18
|
+
|
|
19
|
+
Before launching any subagent, Claude asks **all 7 questions** to gather complete context:
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
23
|
+
│ STORY DISCOVERY (Claude asks directly) │
|
|
24
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
25
|
+
│ │
|
|
26
|
+
│ 1. TASK MANAGER │
|
|
27
|
+
│ Is there an existing task in a project management system? │
|
|
28
|
+
│ - No │
|
|
29
|
+
│ - Yes, ClickUp (request task_id) │
|
|
30
|
+
│ - Yes, Jira (request task_id) │
|
|
31
|
+
│ - Yes, Linear (request task_id) │
|
|
32
|
+
│ - Yes, Asana (request task_id) │
|
|
33
|
+
│ │
|
|
34
|
+
│ 2. DATABASE POLICY │
|
|
35
|
+
│ How should the database be handled? │
|
|
36
|
+
│ - Reset allowed (dev/staging) │
|
|
37
|
+
│ - Incremental migrations only (production) │
|
|
38
|
+
│ │
|
|
39
|
+
│ 3. ENTITY TYPE │
|
|
40
|
+
│ What type of entity change? │
|
|
41
|
+
│ - New entity │
|
|
42
|
+
│ - Modify existing entity (request name) │
|
|
43
|
+
│ - No entity changes │
|
|
44
|
+
│ │
|
|
45
|
+
│ 4. BLOCKS │
|
|
46
|
+
│ Are blocks needed? │
|
|
47
|
+
│ - No blocks needed │
|
|
48
|
+
│ - Simple blocks (frontend-developer creates) │
|
|
49
|
+
│ - Complex blocks (use BLOCKS workflow) │
|
|
50
|
+
│ │
|
|
51
|
+
│ 5. MOCK │
|
|
52
|
+
│ Do you have a design mock? │
|
|
53
|
+
│ - No │
|
|
54
|
+
│ - Yes, I have a mock │
|
|
55
|
+
│ IF YES, ask conditional questions: │
|
|
56
|
+
│ ├── 5a. Mock is for: │
|
|
57
|
+
│ │ [1] Page builder blocks (default if Q4 = blocks) │
|
|
58
|
+
│ │ [2] Complete screens/pages │
|
|
59
|
+
│ │ [3] Specific components │
|
|
60
|
+
│ ├── 5b. Mock was created in: │
|
|
61
|
+
│ │ [1] Stitch │
|
|
62
|
+
│ │ [2] UXPilot │
|
|
63
|
+
│ │ [3] Figma │
|
|
64
|
+
│ │ [4] Other │
|
|
65
|
+
│ └── 5c. Number of sections/blocks: │
|
|
66
|
+
│ [1] Single block/component │
|
|
67
|
+
│ [2] Multiple (2-4) │
|
|
68
|
+
│ [3] Full page (5+)
|
|
69
|
+
│ │
|
|
70
|
+
│ 6. TESTING │
|
|
71
|
+
│ What testing is needed? │
|
|
72
|
+
│ - Modify existing tests (request which ones) │
|
|
73
|
+
│ - Create new tests (request description) │
|
|
74
|
+
│ - Cypress automation required? │
|
|
75
|
+
│ - Yes │
|
|
76
|
+
│ - No, manual tests only │
|
|
77
|
+
│ │
|
|
78
|
+
│ 7. DOCUMENTATION │
|
|
79
|
+
│ What documentation is needed? │
|
|
80
|
+
│ - Public docs (end users) │
|
|
81
|
+
│ - Superadmin docs (administrators) │
|
|
82
|
+
│ - Skills update (technical patterns) │
|
|
83
|
+
│ - No documentation │
|
|
84
|
+
│ │
|
|
85
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Key difference from TASK:** After Claude asks questions, Claude launches `product-manager` subagent with the discovery context. PM uses this context to create detailed requirements.md.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## When to Use
|
|
93
|
+
|
|
94
|
+
### Criteria (ANY applies)
|
|
95
|
+
|
|
96
|
+
| Criterion | Threshold |
|
|
97
|
+
|-----------|-----------|
|
|
98
|
+
| **Files affected** | 15+ files |
|
|
99
|
+
| **Layers touched** | 3 (DB + API + UI) |
|
|
100
|
+
| **New tests needed** | Comprehensive |
|
|
101
|
+
| **Business risk** | Medium to High |
|
|
102
|
+
| **Database changes** | Migrations required |
|
|
103
|
+
| **Documentation** | Required |
|
|
104
|
+
|
|
105
|
+
### Examples
|
|
106
|
+
|
|
107
|
+
| Task | T-Shirt | Why STORY |
|
|
108
|
+
|------|---------|--------------|
|
|
109
|
+
| New entity with full CRUD | L-XL | DB + API + UI + Tests |
|
|
110
|
+
| Notification system | L | Multiple components, async |
|
|
111
|
+
| Auth module refactor | XL | High risk, many files |
|
|
112
|
+
| Billing/subscriptions feature | XL | High risk, external APIs |
|
|
113
|
+
| Architecture migration | XL | Many files, breaking changes |
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## When NOT to Use
|
|
118
|
+
|
|
119
|
+
**Use TWEAK instead if:**
|
|
120
|
+
- 1-3 files only
|
|
121
|
+
- No planning needed
|
|
122
|
+
- Zero business risk
|
|
123
|
+
- Simple fix or typo
|
|
124
|
+
|
|
125
|
+
**Use TASK instead if:**
|
|
126
|
+
- 4-15 files affected
|
|
127
|
+
- No database changes
|
|
128
|
+
- Low to medium risk
|
|
129
|
+
- Light planning sufficient
|
|
130
|
+
- Feature with 1-2 layers only
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## Context Awareness
|
|
135
|
+
|
|
136
|
+
**CRITICAL:** Before starting any STORY workflow, read `.claude/config/context.json` to understand the environment.
|
|
137
|
+
|
|
138
|
+
### Context Detection
|
|
139
|
+
|
|
140
|
+
```typescript
|
|
141
|
+
const context = await Read('.claude/config/context.json')
|
|
142
|
+
|
|
143
|
+
if (context.context === 'monorepo') {
|
|
144
|
+
// Full 15-phase workflow with core access
|
|
145
|
+
} else if (context.context === 'consumer') {
|
|
146
|
+
// Full 15-phase workflow but core-restricted
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Scope Declaration (Phase 2: architecture-supervisor)
|
|
151
|
+
|
|
152
|
+
The architect MUST validate context before planning:
|
|
153
|
+
|
|
154
|
+
```markdown
|
|
155
|
+
## Context Validation
|
|
156
|
+
|
|
157
|
+
**Detected Context:** [monorepo/consumer]
|
|
158
|
+
**Context File:** .claude/config/context.json
|
|
159
|
+
|
|
160
|
+
### Scope Impact
|
|
161
|
+
|
|
162
|
+
| Planned Area | Allowed? | Alternative (if blocked) |
|
|
163
|
+
|--------------|----------|--------------------------|
|
|
164
|
+
| core/entities/ | [Yes/No] | theme entities |
|
|
165
|
+
| core/services/ | [Yes/No] | theme services |
|
|
166
|
+
| core/migrations/ | [Yes/No] | theme migrations |
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Monorepo STORY
|
|
170
|
+
|
|
171
|
+
When `context.context === "monorepo"`:
|
|
172
|
+
- **FULL** 15-phase workflow with core access
|
|
173
|
+
- **CAN** create new core entities in `core/entities/`
|
|
174
|
+
- **CAN** create core migrations in `core/migrations/`
|
|
175
|
+
- **CAN** modify core architecture and shared utilities
|
|
176
|
+
- **CAN** add core services in `core/services/`
|
|
177
|
+
- Focus on creating reusable, abstract features for the platform
|
|
178
|
+
|
|
179
|
+
### Consumer STORY
|
|
180
|
+
|
|
181
|
+
When `context.context === "consumer"`:
|
|
182
|
+
- **FULL** 15-phase workflow but **CORE-RESTRICTED**
|
|
183
|
+
- **Phase 3 (db-developer):** Use theme migrations only (`contents/themes/{theme}/migrations/`)
|
|
184
|
+
- **Phase 5 (backend-developer):** Create in theme/plugins only
|
|
185
|
+
- **FORBIDDEN:** Never create/modify files in `core/` (read-only in node_modules)
|
|
186
|
+
|
|
187
|
+
If feature **REQUIRES** core changes:
|
|
188
|
+
1. Document as "Core Dependency" in requirements.md
|
|
189
|
+
2. Pause workflow
|
|
190
|
+
3. Request user decision: wait for core update OR implement workaround
|
|
191
|
+
|
|
192
|
+
### PM Decisions Extension (Add to requirements.md)
|
|
193
|
+
|
|
194
|
+
```markdown
|
|
195
|
+
### Context Awareness
|
|
196
|
+
- [ ] Monorepo (full core access)
|
|
197
|
+
- [ ] Consumer (core read-only)
|
|
198
|
+
|
|
199
|
+
### Core Dependencies (Consumer only)
|
|
200
|
+
- [ ] No core changes needed
|
|
201
|
+
- [ ] Core enhancement needed: ____________
|
|
202
|
+
- Action: [ ] Wait for core update / [ ] Implement workaround
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### Path Validation (All Developer Phases)
|
|
206
|
+
|
|
207
|
+
Before any file operation:
|
|
208
|
+
```typescript
|
|
209
|
+
const context = await Read('.claude/config/context.json')
|
|
210
|
+
const targetPath = 'core/entities/newEntity.config.ts'
|
|
211
|
+
|
|
212
|
+
if (context.context === 'consumer' && targetPath.startsWith('core/')) {
|
|
213
|
+
// STOP - Cannot modify core in consumer context
|
|
214
|
+
return `
|
|
215
|
+
❌ Cannot create ${targetPath} in consumer context.
|
|
216
|
+
|
|
217
|
+
This file is in core/, which is read-only in your project.
|
|
218
|
+
|
|
219
|
+
Alternatives:
|
|
220
|
+
1. Create theme-specific entity in contents/themes/${activeTheme}/entities/
|
|
221
|
+
2. Create plugin entity in contents/plugins/{plugin}/entities/
|
|
222
|
+
3. Document as "Core Enhancement Request" for upstream
|
|
223
|
+
`
|
|
224
|
+
}
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## Flow (15 Phases)
|
|
230
|
+
|
|
231
|
+
```
|
|
232
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
233
|
+
│ STORY WORKFLOW v1.0 - 15 PHASES │
|
|
234
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
235
|
+
│ │
|
|
236
|
+
│ BLOCK 0: DISCOVERY + MOCK ANALYSIS (1-3) │
|
|
237
|
+
│ ────────────────────────────────────────── │
|
|
238
|
+
│ Phase 0: Claude (orchestrator) → Asks 7 questions │
|
|
239
|
+
│ Phase 0.5: Mock Upload Pause [CONDITIONAL: si hay mock] │
|
|
240
|
+
│ Phase 0.6: mock-analyst [CONDITIONAL: si hay mock] │
|
|
241
|
+
│ │
|
|
242
|
+
│ BLOCK 1: PLANNING (2) │
|
|
243
|
+
│ ───────────────────── │
|
|
244
|
+
│ Phase 1: product-manager → requirements.md (with context) │
|
|
245
|
+
│ Phase 2: architecture-supervisor → plan.md, progress.md │
|
|
246
|
+
│ │
|
|
247
|
+
│ BLOCK 2: FOUNDATION (2) │
|
|
248
|
+
│ ───────────────────────── │
|
|
249
|
+
│ Phase 3: db-entity-developer → migrations + entity files │
|
|
250
|
+
│ Phase 4: db-entity-validator [GATE] │
|
|
251
|
+
│ │
|
|
252
|
+
│ BLOCK 3: BACKEND TDD (2) │
|
|
253
|
+
│ ───────────────────────── │
|
|
254
|
+
│ Phase 5: backend-developer → API routes (TDD completo) │
|
|
255
|
+
│ Phase 6: backend-validator [GATE] │
|
|
256
|
+
│ │
|
|
257
|
+
│ BLOCK 4: DESIGN (legacy - merged into Block 0) │
|
|
258
|
+
│ ─────────────────────────────────────────────── │
|
|
259
|
+
│ Phase 7: [REMOVED - mock-analyst now in Phase 0.6] │
|
|
260
|
+
│ │
|
|
261
|
+
│ BLOCK 5: FRONTEND (2) │
|
|
262
|
+
│ ─────────────────────── │
|
|
263
|
+
│ Phase 8: frontend-developer → UI + bloques simples │
|
|
264
|
+
│ Phase 9: frontend-validator [GATE] │
|
|
265
|
+
│ │
|
|
266
|
+
│ BLOCK 6: CODE REVIEW (1) │
|
|
267
|
+
│ ───────────────────────── │
|
|
268
|
+
│ Phase 10: code-reviewer → architecture + security │
|
|
269
|
+
│ │
|
|
270
|
+
│ BLOCK 7: QA (2) │
|
|
271
|
+
│ ─────────────── │
|
|
272
|
+
│ Phase 11: qa-manual [ORCHESTRATOR] │
|
|
273
|
+
│ Phase 12: qa-automation [OPTIONAL: si PM lo requiere] │
|
|
274
|
+
│ │
|
|
275
|
+
│ BLOCK 8: FINALIZATION (2) │
|
|
276
|
+
│ ───────────────────────── │
|
|
277
|
+
│ Phase 13: documentation-writer [CONDITIONAL] │
|
|
278
|
+
│ Phase 14: unit-test-writer [OPTIONAL: coverage 100%] │
|
|
279
|
+
│ │
|
|
280
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
## Changes from v5.2
|
|
286
|
+
|
|
287
|
+
| Change | Reason |
|
|
288
|
+
|--------|-------|
|
|
289
|
+
| **New:** Phase 0 DISCOVERY (Claude asks questions) | Consistent question experience across all workflows |
|
|
290
|
+
| **Changed:** PM no longer asks questions | Claude asks in Phase 0, PM receives context |
|
|
291
|
+
| **New:** Phase 0.6 mock-analyst [CONDITIONAL] | Design token analysis when mock available |
|
|
292
|
+
| **Expanded:** PM Decisions with Task Manager | Integration with ClickUp/Jira/Asana/Linear |
|
|
293
|
+
| **Expanded:** PM Decisions with Testing | Control over which tests to create |
|
|
294
|
+
| **Expanded:** PM Decisions with Mock | Enables design system analysis |
|
|
295
|
+
| **Changed:** qa-automation from GATE to OPTIONAL | Automated testing based on need |
|
|
296
|
+
|
|
297
|
+
**Result:** 13 phases → 15 phases, 5 gates → 4 mandatory gates
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
## Changes from v4.0
|
|
302
|
+
|
|
303
|
+
| Change | Reason |
|
|
304
|
+
|--------|-------|
|
|
305
|
+
| **New:** Phase 0 DISCOVERY | Claude asks questions consistently |
|
|
306
|
+
| **Removed:** theme-creator | Separate workflow |
|
|
307
|
+
| **Merged:** db-developer + entity config | DB/Entity coherence |
|
|
308
|
+
| **Merged:** api-tester into backend-validator | Reduce redundant gates |
|
|
309
|
+
| **Merged:** functional-validator into frontend-validator | Reduce redundant gates |
|
|
310
|
+
| **Moved:** code-reviewer BEFORE QA | Avoid rework post-QA |
|
|
311
|
+
| **Removed:** block-developer | Frontend handles or separate workflow |
|
|
312
|
+
| **Converted:** qa-manual from subagent to ORCHESTRATOR | Full context, fewer issues |
|
|
313
|
+
| **Moved:** unit-test-writer to FINALIZATION as optional | 100% coverage when needed |
|
|
314
|
+
| **Expanded:** documentation-writer with 3 doc layers | Public, superadmin, skills |
|
|
315
|
+
| **New:** mock-analyst (Phase 0.6) for design tokens | Mock analysis |
|
|
316
|
+
| **New:** Expanded PM Decisions | Task Manager, Mocks, Testing |
|
|
317
|
+
|
|
318
|
+
**Result:** 19 phases → 15 phases, 8 gates → 4 mandatory gates
|
|
319
|
+
|
|
320
|
+
---
|
|
321
|
+
|
|
322
|
+
## Characteristics
|
|
323
|
+
|
|
324
|
+
| Aspecto | v4.0 | v1.0 |
|
|
325
|
+
|---------|------|------|
|
|
326
|
+
| **Total phases** | 19 | 15 (including Phase 0) |
|
|
327
|
+
| **Mandatory gates** | 8 | 4 |
|
|
328
|
+
| **Subagents** | 15+ | 8-10 |
|
|
329
|
+
| **Phase types** | 1 (subagent) | 5 (orchestrator, subagent, gate, conditional, optional) |
|
|
330
|
+
| **Who asks questions** | PM subagent | Claude (orchestrator) |
|
|
331
|
+
| **Typical duration** | 2-8 hours | 1-5 hours |
|
|
332
|
+
| **Token estimate** | 200-500k | 120-350k |
|
|
333
|
+
|
|
334
|
+
---
|
|
335
|
+
|
|
336
|
+
## Tipos de Fases
|
|
337
|
+
|
|
338
|
+
| Tipo | Símbolo | Descripción | Quién ejecuta |
|
|
339
|
+
|------|---------|-------------|---------------|
|
|
340
|
+
| **SUBAGENT** | (ninguno) | Agente especializado | Subagente dedicado |
|
|
341
|
+
| **GATE** | [GATE] | Validación que debe pasar | Subagente validador |
|
|
342
|
+
| **ORCHESTRATOR** | [ORCHESTRATOR] | Fase con contexto completo | Orquestador principal |
|
|
343
|
+
| **CONDITIONAL** | [CONDITIONAL] | Se ejecuta según PM Decisions | Subagente dedicado |
|
|
344
|
+
| **OPTIONAL** | [OPTIONAL] | Se ejecuta si se solicita | Subagente dedicado |
|
|
345
|
+
|
|
346
|
+
---
|
|
347
|
+
|
|
348
|
+
## Workflows Separados (No incluidos aquí)
|
|
349
|
+
|
|
350
|
+
| Workflow | Comando | Uso |
|
|
351
|
+
|----------|---------|-----|
|
|
352
|
+
| Theme creation | `/session:theme:create` | Crear nuevo theme |
|
|
353
|
+
| Plugin creation | `/session:plugin:create` | Crear nuevo plugin |
|
|
354
|
+
| Block creation | `/session:block:create` | Bloques complejos |
|
|
355
|
+
|
|
356
|
+
**Nota:** STORY asume que el theme ya existe.
|
|
357
|
+
|
|
358
|
+
---
|
|
359
|
+
|
|
360
|
+
## PM Decisions (OBLIGATORIO en requirements.md)
|
|
361
|
+
|
|
362
|
+
```markdown
|
|
363
|
+
## PM Decisions
|
|
364
|
+
|
|
365
|
+
### Task Manager
|
|
366
|
+
- [ ] No task manager
|
|
367
|
+
- [ ] ClickUp: task_id=____________
|
|
368
|
+
- [ ] Jira: task_id=____________
|
|
369
|
+
- [ ] Linear: task_id=____________
|
|
370
|
+
- [ ] Asana: task_id=____________
|
|
371
|
+
|
|
372
|
+
### Database Policy
|
|
373
|
+
- [ ] Reset allowed (dev/staging)
|
|
374
|
+
- [ ] Incremental migrations only (production)
|
|
375
|
+
|
|
376
|
+
### Entity Type
|
|
377
|
+
- [ ] New entity required
|
|
378
|
+
- [ ] Modify existing entity: ____________
|
|
379
|
+
- [ ] No entity changes
|
|
380
|
+
|
|
381
|
+
### Blocks
|
|
382
|
+
- [ ] No blocks needed
|
|
383
|
+
- [ ] Simple blocks (frontend-developer creates)
|
|
384
|
+
- [ ] Complex blocks (use BLOCKS workflow)
|
|
385
|
+
|
|
386
|
+
### Mock
|
|
387
|
+
- [ ] No mock disponible
|
|
388
|
+
- [ ] Mock disponible: path=____________
|
|
389
|
+
- [ ] Para bloques (page builder)
|
|
390
|
+
- [ ] Para componentes generales
|
|
391
|
+
|
|
392
|
+
### Testing
|
|
393
|
+
- [ ] Modificar tests existentes: ____________
|
|
394
|
+
- [ ] Crear nuevos tests: ____________
|
|
395
|
+
- [ ] Automatización Cypress requerida
|
|
396
|
+
- [ ] Solo tests manuales
|
|
397
|
+
|
|
398
|
+
### Documentation
|
|
399
|
+
- [ ] Public docs (user-facing)
|
|
400
|
+
- [ ] Superadmin docs (internal admin)
|
|
401
|
+
- [ ] Skills update (technical patterns)
|
|
402
|
+
- [ ] No documentation needed
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
---
|
|
406
|
+
|
|
407
|
+
## Discovery to PM Handoff (Phase 0 → Phase 1)
|
|
408
|
+
|
|
409
|
+
Claude asks all 7 questions in Phase 0, then passes the discovery context to the product-manager in Phase 1:
|
|
410
|
+
|
|
411
|
+
```
|
|
412
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
413
|
+
│ PHASE 0: DISCOVERY (Claude) │
|
|
414
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
415
|
+
│ │
|
|
416
|
+
│ Claude asks user the 7 questions (see Initial Questions above) │
|
|
417
|
+
│ Claude collects all answers │
|
|
418
|
+
│ Claude creates discovery context object │
|
|
419
|
+
│ │
|
|
420
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
421
|
+
│
|
|
422
|
+
▼
|
|
423
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
424
|
+
│ PHASE 1: PRODUCT-MANAGER (receives context) │
|
|
425
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
426
|
+
│ │
|
|
427
|
+
│ PM receives discovery context: │
|
|
428
|
+
│ { │
|
|
429
|
+
│ taskManager: { type: "clickup", taskId: "abc123" }, │
|
|
430
|
+
│ databasePolicy: "reset_allowed", │
|
|
431
|
+
│ entityType: { type: "new", name: "products" }, │
|
|
432
|
+
│ blocks: "simple", │
|
|
433
|
+
│ mock: { path: "_tmp/mocks/products", for: "blocks" }, │
|
|
434
|
+
│ testing: { type: "create", automation: true }, │
|
|
435
|
+
│ documentation: ["superadmin", "skills"] │
|
|
436
|
+
│ } │
|
|
437
|
+
│ │
|
|
438
|
+
│ PM uses context to: │
|
|
439
|
+
│ ├── Fetch external task (if taskManager provided) │
|
|
440
|
+
│ ├── Create requirements.md with correct PM Decisions │
|
|
441
|
+
│ ├── Define ACs based on entity type │
|
|
442
|
+
│ └── Set up session structure │
|
|
443
|
+
│ │
|
|
444
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
**Benefits of this approach:**
|
|
448
|
+
- Consistent question experience across all workflows (Claude always asks)
|
|
449
|
+
- PM has full context before starting work
|
|
450
|
+
- If external task exists, PM can fetch and incorporate it
|
|
451
|
+
- No redundant questioning
|
|
452
|
+
|
|
453
|
+
---
|
|
454
|
+
|
|
455
|
+
## Session Files
|
|
456
|
+
|
|
457
|
+
```
|
|
458
|
+
stories/YYYY-MM-DD-name/
|
|
459
|
+
├── context.md # Permanent info + agent log
|
|
460
|
+
├── requirements.md # ACs, user stories, PM Decisions
|
|
461
|
+
├── plan.md # Detailed technical plan (with phase markers)
|
|
462
|
+
├── scope.json # Allowed paths
|
|
463
|
+
├── pendings.md # Global pending items
|
|
464
|
+
├── tests.md # Selectors, translations, results
|
|
465
|
+
│
|
|
466
|
+
├── mocks/ # [CONDITIONAL: if mock selected]
|
|
467
|
+
│ ├── code.html # User uploads
|
|
468
|
+
│ ├── screen.png # User uploads
|
|
469
|
+
│ ├── analysis.json # From mock-analyst (Phase 0.6)
|
|
470
|
+
│ └── ds-mapping.json # From mock-analyst (Phase 0.6)
|
|
471
|
+
│
|
|
472
|
+
├── phases/ # Auto-generated phase files (token optimization)
|
|
473
|
+
│ ├── phase-03-db-entity.md
|
|
474
|
+
│ ├── phase-05-backend.md
|
|
475
|
+
│ ├── phase-08-frontend.md
|
|
476
|
+
│ └── ... # One file per developer phase
|
|
477
|
+
│
|
|
478
|
+
├── iterations/
|
|
479
|
+
│ ├── 01-initial/
|
|
480
|
+
│ │ ├── progress.md
|
|
481
|
+
│ │ ├── changes.md
|
|
482
|
+
│ │ └── closed.json
|
|
483
|
+
│ └── 02-scope-change/
|
|
484
|
+
│ ├── scope-change.md
|
|
485
|
+
│ ├── progress.md
|
|
486
|
+
│ └── changes.md
|
|
487
|
+
│
|
|
488
|
+
└── current/
|
|
489
|
+
├── progress.md → iterations/XX/progress.md
|
|
490
|
+
└── changes.md → iterations/XX/changes.md
|
|
491
|
+
```
|
|
492
|
+
|
|
493
|
+
**Token Optimization:** The `phases/` directory contains pre-split phase files generated by `split-plan.sh`. Each developer agent reads only their specific phase file (~800 tokens) instead of the full plan.md (~2,800 tokens). See `_docs/workflows-optimizations.md` for details.
|
|
494
|
+
|
|
495
|
+
---
|
|
496
|
+
|
|
497
|
+
## Validation Gates
|
|
498
|
+
|
|
499
|
+
| Gate | Phase | What it validates | Required |
|
|
500
|
+
|------|-------|-------------------|----------|
|
|
501
|
+
| `db-entity-validator` | 4 | Migrations, sample data, entity files | Yes |
|
|
502
|
+
| `backend-validator` | 6 | Jest tests, build, lint, Cypress API | Yes |
|
|
503
|
+
| `frontend-validator` | 9 | data-cy, translations, ACs coherence | Yes |
|
|
504
|
+
| `qa-automation` | 12 | Cypress UAT tests | **No** (PM Decision) |
|
|
505
|
+
|
|
506
|
+
**Note:** qa-manual is no longer a separate GATE, it's an ORCHESTRATOR phase that can block if it finds critical errors.
|
|
507
|
+
|
|
508
|
+
---
|
|
509
|
+
|
|
510
|
+
## Subagents by Phase
|
|
511
|
+
|
|
512
|
+
| Phase | Type | Agent/Executor | Responsibility |
|
|
513
|
+
|------|------|-----------------|-----------------|
|
|
514
|
+
| 0 | ORCHESTRATOR | *Claude* | Ask 7 questions, collect discovery context |
|
|
515
|
+
| 1 | SUBAGENT | product-manager | Requirements with context, ACs, PM Decisions |
|
|
516
|
+
| 2 | SUBAGENT | architecture-supervisor | Technical plan, progress template |
|
|
517
|
+
| 3 | SUBAGENT | db-entity-developer | Migrations + Entity files |
|
|
518
|
+
| 4 | GATE | db-entity-validator | Validate DB + Entity |
|
|
519
|
+
| 5 | SUBAGENT | backend-developer | API routes (full TDD) |
|
|
520
|
+
| 6 | GATE | backend-validator | Jest + Build + API tests |
|
|
521
|
+
| 7 | DEPRECATED | ~~mock-analyst~~ | Moved to Phase 0.6 |
|
|
522
|
+
| 8 | SUBAGENT | frontend-developer | UI components + simple blocks |
|
|
523
|
+
| 9 | GATE | frontend-validator | data-cy + i18n + ACs |
|
|
524
|
+
| 10 | SUBAGENT | code-reviewer | Architecture + Security review |
|
|
525
|
+
| 11 | ORCHESTRATOR | *orchestrator* | QA Manual with Playwright |
|
|
526
|
+
| 12 | OPTIONAL | qa-automation | Cypress UAT tests |
|
|
527
|
+
| 13 | CONDITIONAL | documentation-writer | Docs: public, superadmin, skills |
|
|
528
|
+
| 14 | OPTIONAL | unit-test-writer | Coverage 100% |
|
|
529
|
+
|
|
530
|
+
---
|
|
531
|
+
|
|
532
|
+
## Block Details
|
|
533
|
+
|
|
534
|
+
### BLOQUE 0: DISCOVERY + MOCK ANALYSIS
|
|
535
|
+
|
|
536
|
+
**Phase 0: Claude (Orchestrator)**
|
|
537
|
+
```
|
|
538
|
+
Responsabilidades:
|
|
539
|
+
├── Hacer las 7 preguntas al usuario
|
|
540
|
+
│ ├── Q4: Blocks → Entender si hay bloques
|
|
541
|
+
│ └── Q5: Mock → Si Yes, hacer preguntas condicionales 5a, 5b, 5c
|
|
542
|
+
│ └── Si Q4 = blocks → 5a defaults to "blocks"
|
|
543
|
+
├── Recopilar todas las respuestas
|
|
544
|
+
├── Crear objeto de contexto discovery
|
|
545
|
+
├── Evaluar si el workflow STORY es correcto
|
|
546
|
+
│ └── Si es demasiado simple → Recomendar TASK
|
|
547
|
+
└── Si hay mock → Continuar con Phase 0.5
|
|
548
|
+
Si no hay mock → Lanzar product-manager con contexto
|
|
549
|
+
```
|
|
550
|
+
|
|
551
|
+
**Phase 0.5: Mock Upload Pause** [CONDITIONAL: si hay mock]
|
|
552
|
+
```
|
|
553
|
+
⚠️ SE EJECUTA SI: Discovery answer "Mock" = Yes
|
|
554
|
+
|
|
555
|
+
Responsabilidades:
|
|
556
|
+
├── Crear carpeta session con mocks/ subfolder
|
|
557
|
+
├── Mostrar instrucciones de upload:
|
|
558
|
+
│ ┌─────────────────────────────────────────────────────┐
|
|
559
|
+
│ │ 📁 MOCK UPLOAD REQUIRED │
|
|
560
|
+
│ │ │
|
|
561
|
+
│ │ Please upload your mock files to: │
|
|
562
|
+
│ │ .claude/sessions/stories/YYYY-MM-DD-name/mocks/ │
|
|
563
|
+
│ │ │
|
|
564
|
+
│ │ Expected files (auto-detected): │
|
|
565
|
+
│ │ - HTML: code.html, index.html, *.html │
|
|
566
|
+
│ │ - Screenshot: screen.png, *.png, *.jpg │
|
|
567
|
+
│ │ - Optional: assets/, tailwind.config.js │
|
|
568
|
+
│ │ │
|
|
569
|
+
│ │ Reply "ready" when files are uploaded. │
|
|
570
|
+
│ └─────────────────────────────────────────────────────┘
|
|
571
|
+
├── Esperar confirmación del usuario ("ready")
|
|
572
|
+
└── Validar que los archivos existen
|
|
573
|
+
```
|
|
574
|
+
|
|
575
|
+
**Phase 0.6: mock-analyst** [CONDITIONAL: si hay mock]
|
|
576
|
+
```
|
|
577
|
+
⚠️ SE EJECUTA SI: Phase 0.5 completado exitosamente
|
|
578
|
+
|
|
579
|
+
Responsabilidades:
|
|
580
|
+
├── Detectar archivos en mocks/ (*.html, *.png, *.jpg, *.pdf)
|
|
581
|
+
├── Analizar HTML/CSS del mock (si disponible)
|
|
582
|
+
├── Extraer tokens de diseño del Tailwind config
|
|
583
|
+
├── Mapear a tokens del theme activo
|
|
584
|
+
├── Identificar gaps (tokens faltantes)
|
|
585
|
+
└── Generar outputs:
|
|
586
|
+
├── analysis.json (estructura del mock)
|
|
587
|
+
└── ds-mapping.json (mapeo de tokens)
|
|
588
|
+
|
|
589
|
+
Output → PM recibe mock analysis como parte del contexto
|
|
590
|
+
```
|
|
591
|
+
|
|
592
|
+
### BLOQUE 1: PLANNING
|
|
593
|
+
|
|
594
|
+
**Phase 1: product-manager**
|
|
595
|
+
```
|
|
596
|
+
Responsabilidades (CON CONTEXTO de Phase 0):
|
|
597
|
+
├── Recibir discovery context de Claude
|
|
598
|
+
├── Si hay Task Manager en contexto:
|
|
599
|
+
│ ├── Usar task_id del contexto
|
|
600
|
+
│ ├── Leer tarea existente (contexto)
|
|
601
|
+
│ └── Sincronizar ACs con la tarea
|
|
602
|
+
├── Crear requirements.md con ACs detallados
|
|
603
|
+
├── Rellenar PM Decisions con datos del contexto
|
|
604
|
+
└── Crear clickup_task.md (si aplica)
|
|
605
|
+
|
|
606
|
+
⚠️ NO hace preguntas - ya tiene el contexto de Phase 0
|
|
607
|
+
```
|
|
608
|
+
|
|
609
|
+
**Phase 2: architecture-supervisor**
|
|
610
|
+
- Lee requirements y PM Decisions
|
|
611
|
+
- Crea `plan.md` con plan técnico detallado
|
|
612
|
+
- **CRITICAL:** Must include phase markers for token optimization
|
|
613
|
+
- Format: `<!-- PHASE:XX:START -->` and `<!-- PHASE:XX:END -->`
|
|
614
|
+
- Each phase section ~800 tokens, self-contained
|
|
615
|
+
- ACs extracted per phase (not "see requirements.md")
|
|
616
|
+
- Crea `progress.md` template con todas las fases
|
|
617
|
+
- Define scope en `scope.json`
|
|
618
|
+
- Si hay Mock → Incluye Phase 7 en plan
|
|
619
|
+
- **After plan.md:** Run `split-plan.sh` to create phase files
|
|
620
|
+
|
|
621
|
+
---
|
|
622
|
+
|
|
623
|
+
### BLOCK 2: FOUNDATION
|
|
624
|
+
|
|
625
|
+
**Phase 3: db-entity-developer**
|
|
626
|
+
```
|
|
627
|
+
Context (Token Optimized):
|
|
628
|
+
├── Read phases/phase-03-db-entity.md (~800 tokens)
|
|
629
|
+
│ └── Contains: Objective, Relevant ACs, Files to create
|
|
630
|
+
├── Read progress.md (~200 tokens)
|
|
631
|
+
└── Total: ~1,000 tokens (vs ~7,800 without optimization)
|
|
632
|
+
|
|
633
|
+
Responsabilidades:
|
|
634
|
+
├── 3.1 Database Layer
|
|
635
|
+
│ ├── Migration file (SQL con TIMESTAMPTZ)
|
|
636
|
+
│ ├── Sample data (abundante y realista)
|
|
637
|
+
│ └── Test users en devKeyring
|
|
638
|
+
│
|
|
639
|
+
└── 3.2 Entity Layer
|
|
640
|
+
├── entity.config.ts (5 sections)
|
|
641
|
+
├── entity.fields.ts (NO system fields)
|
|
642
|
+
├── entity.types.ts
|
|
643
|
+
├── entity.service.ts (static class, RLS)
|
|
644
|
+
└── entity.messages/ (en.json, es.json)
|
|
645
|
+
```
|
|
646
|
+
|
|
647
|
+
**Phase 4: db-entity-validator** [GATE]
|
|
648
|
+
- ✓ Migrations ejecutan sin error
|
|
649
|
+
- ✓ Tablas existen con schema correcto
|
|
650
|
+
- ✓ Sample data insertada
|
|
651
|
+
- ✓ Test users pueden autenticarse
|
|
652
|
+
- ✓ Entity files existen (4-5 archivos)
|
|
653
|
+
- ✓ Types coinciden con migration
|
|
654
|
+
- ✓ Service methods funcionan
|
|
655
|
+
|
|
656
|
+
---
|
|
657
|
+
|
|
658
|
+
### BLOCK 3: BACKEND TDD
|
|
659
|
+
|
|
660
|
+
**Phase 5: backend-developer**
|
|
661
|
+
```
|
|
662
|
+
Context (Token Optimized):
|
|
663
|
+
├── Read phases/phase-05-backend.md (~800 tokens)
|
|
664
|
+
│ └── Contains: Objective, Relevant ACs, Files to create
|
|
665
|
+
├── Read progress.md (~200 tokens)
|
|
666
|
+
└── Total: ~1,000 tokens (vs ~7,800 without optimization)
|
|
667
|
+
|
|
668
|
+
TDD Completo:
|
|
669
|
+
1. Escribir tests PRIMERO (RED)
|
|
670
|
+
2. Implementar código (GREEN)
|
|
671
|
+
3. Refactorizar (REFACTOR)
|
|
672
|
+
|
|
673
|
+
Entregables:
|
|
674
|
+
├── __tests__/api/[entity].test.ts
|
|
675
|
+
├── app/api/v1/[entity]/route.ts
|
|
676
|
+
├── Dual auth (session + API key)
|
|
677
|
+
├── Zod validation schemas
|
|
678
|
+
├── Response format con metadata
|
|
679
|
+
└── Target: 70%+ coverage
|
|
680
|
+
```
|
|
681
|
+
|
|
682
|
+
**Phase 6: backend-validator** [GATE]
|
|
683
|
+
- ✓ Jest tests pasan (100%)
|
|
684
|
+
- ✓ `pnpm build` sin errores
|
|
685
|
+
- ✓ `tsc --noEmit` sin errores
|
|
686
|
+
- ✓ `pnpm lint` sin errores
|
|
687
|
+
- ✓ Cypress API tests pasan (si hay endpoints nuevos)
|
|
688
|
+
- ✓ Data-only registry pattern verificado
|
|
689
|
+
|
|
690
|
+
---
|
|
691
|
+
|
|
692
|
+
### BLOCK 4: DESIGN [DEPRECATED]
|
|
693
|
+
|
|
694
|
+
**Phase 7: [REMOVED - Moved to Phase 0.6]**
|
|
695
|
+
|
|
696
|
+
```
|
|
697
|
+
⚠️ ESTA FASE SE MOVIÓ A PHASE 0.6 EN BLOCK 0
|
|
698
|
+
|
|
699
|
+
Razón del cambio:
|
|
700
|
+
├── Mock analysis debe ocurrir ANTES de PM
|
|
701
|
+
├── PM necesita ver el análisis para escribir mejores ACs
|
|
702
|
+
├── Arc necesita saber qué bloques crear
|
|
703
|
+
└── Frontend-developer sigue leyendo ds-mapping.json
|
|
704
|
+
|
|
705
|
+
El mock analysis ahora:
|
|
706
|
+
├── Se ejecuta inmediatamente después de Discovery
|
|
707
|
+
├── Genera analysis.json + ds-mapping.json en mocks/
|
|
708
|
+
└── PM y Arc reciben el análisis como parte del contexto
|
|
709
|
+
```
|
|
710
|
+
|
|
711
|
+
**Integración con frontend-developer (sin cambios):**
|
|
712
|
+
```
|
|
713
|
+
El frontend-developer:
|
|
714
|
+
1. Lee mocks/ds-mapping.json (si existe)
|
|
715
|
+
2. Usa los mappings para aplicar tokens correctos
|
|
716
|
+
3. Reporta si encuentra valores no mapeados
|
|
717
|
+
```
|
|
718
|
+
|
|
719
|
+
---
|
|
720
|
+
|
|
721
|
+
### BLOCK 5: FRONTEND
|
|
722
|
+
|
|
723
|
+
**Phase 8: frontend-developer**
|
|
724
|
+
```
|
|
725
|
+
Context (Token Optimized):
|
|
726
|
+
├── Read phases/phase-08-frontend.md (~800 tokens)
|
|
727
|
+
│ └── Contains: Objective, Relevant ACs, Files to create
|
|
728
|
+
├── Read progress.md (~200 tokens)
|
|
729
|
+
└── Total: ~1,000 tokens (vs ~7,800 without optimization)
|
|
730
|
+
|
|
731
|
+
Responsabilidades:
|
|
732
|
+
├── UI Components (shadcn/ui, compound patterns)
|
|
733
|
+
├── State Management (TanStack Query)
|
|
734
|
+
├── Translations (ZERO hardcoded strings)
|
|
735
|
+
├── data-cy selectors (con sel() function)
|
|
736
|
+
├── Accessibility (ARIA, keyboard nav)
|
|
737
|
+
├── Bloques simples (si PM Decision permite)
|
|
738
|
+
├── Responsive design (mobile-first)
|
|
739
|
+
│
|
|
740
|
+
└── Si hay ds-mapping.json:
|
|
741
|
+
├── Usar tokens mapeados
|
|
742
|
+
├── Reportar gaps encontrados
|
|
743
|
+
└── Seguir guía de colores/spacing
|
|
744
|
+
```
|
|
745
|
+
|
|
746
|
+
**Phase 9: frontend-validator** [GATE]
|
|
747
|
+
- ✓ Todos los data-cy usan `sel()` function
|
|
748
|
+
- ✓ ZERO hardcoded strings (todo usa translations)
|
|
749
|
+
- ✓ `pnpm build` sin errores
|
|
750
|
+
- ✓ ACs coherentes con implementación
|
|
751
|
+
- ✓ Selectores documentados en tests.md
|
|
752
|
+
- ✓ Si hay mock: valores usan tokens del mapping
|
|
753
|
+
|
|
754
|
+
---
|
|
755
|
+
|
|
756
|
+
### BLOCK 6: CODE REVIEW
|
|
757
|
+
|
|
758
|
+
**Phase 10: code-reviewer**
|
|
759
|
+
```
|
|
760
|
+
Context (Token Optimized):
|
|
761
|
+
├── Read phases/phase-10-code-reviewer.md (~800 tokens)
|
|
762
|
+
│ └── Contains: Objective, Files to review, Checklist
|
|
763
|
+
├── Read progress.md (~200 tokens)
|
|
764
|
+
└── Total: ~1,000 tokens (vs ~7,800 without optimization)
|
|
765
|
+
|
|
766
|
+
Review antes de QA:
|
|
767
|
+
├── Architecture patterns correctos
|
|
768
|
+
├── Security vulnerabilities
|
|
769
|
+
├── Performance concerns
|
|
770
|
+
├── Code quality y best practices
|
|
771
|
+
├── Core/Theme boundaries respetados
|
|
772
|
+
└── Registry pattern violations
|
|
773
|
+
```
|
|
774
|
+
|
|
775
|
+
Si encuentra issues críticos → Llama al developer para fix.
|
|
776
|
+
|
|
777
|
+
---
|
|
778
|
+
|
|
779
|
+
### BLOCK 7: QA
|
|
780
|
+
|
|
781
|
+
**Phase 11: qa-manual** [ORCHESTRATOR]
|
|
782
|
+
|
|
783
|
+
```
|
|
784
|
+
⚠️ EJECUTADO POR EL ORQUESTADOR (no subagente)
|
|
785
|
+
|
|
786
|
+
El orquestador tiene contexto completo de la sesión:
|
|
787
|
+
- Ya leyó requirements.md (conoce los ACs)
|
|
788
|
+
- Ya leyó plan.md (conoce la arquitectura)
|
|
789
|
+
- Ya leyó progress.md (sabe qué se implementó)
|
|
790
|
+
|
|
791
|
+
Ejecución:
|
|
792
|
+
1. Iniciar dev server (si no está corriendo)
|
|
793
|
+
2. Abrir browser con Playwright
|
|
794
|
+
3. Para cada AC en requirements.md:
|
|
795
|
+
├── Navegar a la pantalla correspondiente
|
|
796
|
+
├── Verificar funcionamiento visual
|
|
797
|
+
├── Probar interacciones principales
|
|
798
|
+
└── Marcar como ✓ o ✗
|
|
799
|
+
4. Revisar consola del browser por errores
|
|
800
|
+
5. Revisar network por errores 500
|
|
801
|
+
6. Si encuentra issues:
|
|
802
|
+
├── Documentar en context.md
|
|
803
|
+
├── Llamar al developer apropiado (backend/frontend)
|
|
804
|
+
├── Esperar fix
|
|
805
|
+
└── Retry (max 3 intentos)
|
|
806
|
+
7. Si todo OK → Continuar (qa-automation si PM lo requiere)
|
|
807
|
+
|
|
808
|
+
Ventajas vs subagente:
|
|
809
|
+
✓ Contexto completo sin re-lectura
|
|
810
|
+
✓ Mejor criterio sobre qué es crítico
|
|
811
|
+
✓ Menos problemas de herramientas
|
|
812
|
+
✓ Decisiones más inteligentes
|
|
813
|
+
```
|
|
814
|
+
|
|
815
|
+
**Phase 12: qa-automation** [OPTIONAL]
|
|
816
|
+
|
|
817
|
+
```
|
|
818
|
+
⚠️ SE EJECUTA SI: PM Decision "Testing" incluye "Automatización Cypress requerida"
|
|
819
|
+
|
|
820
|
+
Responsabilidades:
|
|
821
|
+
├── Heredar contexto de qa-manual (misma sesión)
|
|
822
|
+
├── Verificar selectores antes de ejecutar
|
|
823
|
+
├── Crear/actualizar Cypress tests (API + UAT)
|
|
824
|
+
├── Ejecutar suite completa
|
|
825
|
+
└── Documentar resultados en tests.md
|
|
826
|
+
|
|
827
|
+
Si PM Decision es "Solo tests manuales":
|
|
828
|
+
└── Esta fase se SALTA
|
|
829
|
+
```
|
|
830
|
+
|
|
831
|
+
---
|
|
832
|
+
|
|
833
|
+
### BLOCK 8: FINALIZATION
|
|
834
|
+
|
|
835
|
+
**Phase 13: documentation-writer** [CONDITIONAL]
|
|
836
|
+
|
|
837
|
+
```
|
|
838
|
+
⚠️ SE EJECUTA SI PM Decision indica documentación necesaria
|
|
839
|
+
|
|
840
|
+
RESPONSABILIDADES EXPANDIDAS:
|
|
841
|
+
El agente debe analizar qué documentación crear/actualizar
|
|
842
|
+
basándose en los cambios realizados.
|
|
843
|
+
```
|
|
844
|
+
|
|
845
|
+
#### Tres Capas de Documentación
|
|
846
|
+
|
|
847
|
+
| Capa | Ubicación | Audiencia | Lenguaje |
|
|
848
|
+
|------|-----------|-----------|----------|
|
|
849
|
+
| **Public** | `docs/public/` | Usuarios finales | Simple, no técnico |
|
|
850
|
+
| **Superadmin** | `docs/superadmin/` | Administradores | Semi-técnico, operacional |
|
|
851
|
+
| **Skills** | `.claude/skills/` | Claude/Desarrolladores | Técnico, patrones |
|
|
852
|
+
|
|
853
|
+
#### Matriz de Decisión
|
|
854
|
+
|
|
855
|
+
```
|
|
856
|
+
Tipo de Cambio │ Public │ Superadmin │ Skills
|
|
857
|
+
────────────────────────────┼────────┼────────────┼────────
|
|
858
|
+
Nueva entidad + CRUD │ ○ │ ● │ ●
|
|
859
|
+
Nuevo API endpoint │ ○ │ ● │ ○
|
|
860
|
+
Nuevo componente UI │ ○ │ ○ │ ○
|
|
861
|
+
Nueva arquitectura/patrón │ ✗ │ ○ │ ●
|
|
862
|
+
Cambio de configuración │ ✗ │ ● │ ○
|
|
863
|
+
Nuevo plugin │ ○ │ ● │ ●
|
|
864
|
+
Nueva convención/patrón │ ✗ │ ✗ │ ●
|
|
865
|
+
|
|
866
|
+
● = Requerido
|
|
867
|
+
○ = Si aplica
|
|
868
|
+
✗ = No necesario
|
|
869
|
+
```
|
|
870
|
+
|
|
871
|
+
#### Detalle por Capa
|
|
872
|
+
|
|
873
|
+
**Public Docs** (`docs/public/`)
|
|
874
|
+
```
|
|
875
|
+
Cuándo crear/actualizar:
|
|
876
|
+
- Feature visible para usuarios finales
|
|
877
|
+
- Nuevo flujo de usuario
|
|
878
|
+
- Cambio en UI existente
|
|
879
|
+
|
|
880
|
+
Contenido:
|
|
881
|
+
├── Guías de usuario (how-to)
|
|
882
|
+
├── FAQs
|
|
883
|
+
├── Screenshots/GIFs
|
|
884
|
+
└── Ejemplos de uso
|
|
885
|
+
|
|
886
|
+
Estilo:
|
|
887
|
+
- Lenguaje simple y accesible
|
|
888
|
+
- Evitar jerga técnica
|
|
889
|
+
- Paso a paso con imágenes
|
|
890
|
+
```
|
|
891
|
+
|
|
892
|
+
**Superadmin Docs** (`docs/superadmin/`)
|
|
893
|
+
```
|
|
894
|
+
Cuándo crear/actualizar:
|
|
895
|
+
- Nueva entidad administrable
|
|
896
|
+
- Nuevas opciones de configuración
|
|
897
|
+
- Cambios en permisos/roles
|
|
898
|
+
- Nuevos flujos de administración
|
|
899
|
+
|
|
900
|
+
Contenido:
|
|
901
|
+
├── Guías de configuración
|
|
902
|
+
├── Troubleshooting
|
|
903
|
+
├── Opciones disponibles
|
|
904
|
+
├── Permisos necesarios
|
|
905
|
+
└── Ejemplos de configuración
|
|
906
|
+
|
|
907
|
+
Estilo:
|
|
908
|
+
- Semi-técnico pero comprensible
|
|
909
|
+
- Enfocado en operaciones
|
|
910
|
+
- Sin código, pero con ejemplos de config
|
|
911
|
+
```
|
|
912
|
+
|
|
913
|
+
**Skills** (`.claude/skills/`)
|
|
914
|
+
```
|
|
915
|
+
Cuándo crear/actualizar:
|
|
916
|
+
- Nuevo patrón arquitectural
|
|
917
|
+
- Nueva convención de código
|
|
918
|
+
- Patrón que se reutilizará
|
|
919
|
+
- Conocimiento técnico que Claude necesita recordar
|
|
920
|
+
|
|
921
|
+
Contenido:
|
|
922
|
+
├── SKILL.md principal
|
|
923
|
+
├── Estructura de archivos
|
|
924
|
+
├── Patrones y convenciones
|
|
925
|
+
├── Ejemplos de código
|
|
926
|
+
├── Anti-patterns
|
|
927
|
+
└── Referencias a otros skills
|
|
928
|
+
|
|
929
|
+
Criterios para crear/actualizar skill:
|
|
930
|
+
□ ¿Es un patrón que se reutilizará?
|
|
931
|
+
□ ¿Claude necesita recordar esto para futuras tareas?
|
|
932
|
+
□ ¿Un developer necesitaría entender esto?
|
|
933
|
+
□ ¿Cambia cómo se hace algo en el proyecto?
|
|
934
|
+
|
|
935
|
+
Si ≥2 respuestas son SÍ → Crear/actualizar skill
|
|
936
|
+
```
|
|
937
|
+
|
|
938
|
+
#### Flujo del documentation-writer
|
|
939
|
+
|
|
940
|
+
```
|
|
941
|
+
1. ANÁLISIS
|
|
942
|
+
├── Leer changes.md (qué archivos cambiaron)
|
|
943
|
+
├── Leer requirements.md (qué feature es)
|
|
944
|
+
├── Leer PM Decisions (qué docs se pidieron)
|
|
945
|
+
└── Identificar tipo de cambios
|
|
946
|
+
|
|
947
|
+
2. DECISIÓN
|
|
948
|
+
├── Aplicar matriz de decisión
|
|
949
|
+
├── Determinar qué capas necesitan docs
|
|
950
|
+
└── Priorizar: Skills > Superadmin > Public
|
|
951
|
+
|
|
952
|
+
3. EJECUCIÓN
|
|
953
|
+
Para cada capa necesaria:
|
|
954
|
+
├── Verificar si existe documentación previa
|
|
955
|
+
├── Si existe → Actualizar
|
|
956
|
+
├── Si no existe → Crear
|
|
957
|
+
└── Seguir estilo de la capa
|
|
958
|
+
|
|
959
|
+
4. VALIDACIÓN
|
|
960
|
+
├── Links funcionan
|
|
961
|
+
├── Ejemplos son correctos
|
|
962
|
+
├── Código compila (en skills)
|
|
963
|
+
└── Consistencia con docs existentes
|
|
964
|
+
```
|
|
965
|
+
|
|
966
|
+
**Phase 14: unit-test-writer** [OPTIONAL]
|
|
967
|
+
|
|
968
|
+
```
|
|
969
|
+
SE EJECUTA SI:
|
|
970
|
+
- Coverage actual < 80%
|
|
971
|
+
- PM solicita coverage 100%
|
|
972
|
+
- Hay business logic compleja sin tests
|
|
973
|
+
|
|
974
|
+
Responsabilidades:
|
|
975
|
+
├── Analizar coverage report
|
|
976
|
+
├── Identificar gaps
|
|
977
|
+
├── Escribir tests para:
|
|
978
|
+
│ ├── Services (business logic)
|
|
979
|
+
│ ├── Utilities
|
|
980
|
+
│ ├── Edge cases
|
|
981
|
+
│ └── Error handling
|
|
982
|
+
└── Target: 100% coverage en critical paths
|
|
983
|
+
|
|
984
|
+
NO hace:
|
|
985
|
+
- Re-escribir tests de backend-developer
|
|
986
|
+
- Tests de API (ya cubiertos)
|
|
987
|
+
- Tests E2E (eso es qa-automation)
|
|
988
|
+
```
|
|
989
|
+
|
|
990
|
+
---
|
|
991
|
+
|
|
992
|
+
## Iterations
|
|
993
|
+
|
|
994
|
+
### When to Create a New Iteration
|
|
995
|
+
|
|
996
|
+
1. **Scope Change:** El alcance cambió significativamente
|
|
997
|
+
2. **Major Blocker:** Blocker que requiere replantear
|
|
998
|
+
3. **Review Feedback:** Code review requiere cambios sustanciales
|
|
999
|
+
4. **Pausa Larga:** Se pausó el trabajo por días
|
|
1000
|
+
|
|
1001
|
+
### Command
|
|
1002
|
+
|
|
1003
|
+
```bash
|
|
1004
|
+
./iteration-init.sh stories/YYYY-MM-DD-name scope-change "add-variants"
|
|
1005
|
+
```
|
|
1006
|
+
|
|
1007
|
+
---
|
|
1008
|
+
|
|
1009
|
+
## Commands
|
|
1010
|
+
|
|
1011
|
+
```
|
|
1012
|
+
/session:start:story <description>
|
|
1013
|
+
```
|
|
1014
|
+
|
|
1015
|
+
Or automatic evaluation:
|
|
1016
|
+
```
|
|
1017
|
+
/session:start complex-feature-description
|
|
1018
|
+
```
|
|
1019
|
+
|
|
1020
|
+
---
|
|
1021
|
+
|
|
1022
|
+
## Flow Diagram
|
|
1023
|
+
|
|
1024
|
+
```
|
|
1025
|
+
START
|
|
1026
|
+
│
|
|
1027
|
+
▼
|
|
1028
|
+
┌─────────────────┐
|
|
1029
|
+
│ BLOQUE 0: │
|
|
1030
|
+
│ DISCOVERY │
|
|
1031
|
+
│ (0, 0.5, 0.6) │
|
|
1032
|
+
│ Claude asks 7 │
|
|
1033
|
+
│ questions │
|
|
1034
|
+
└────────┬────────┘
|
|
1035
|
+
│
|
|
1036
|
+
▼
|
|
1037
|
+
┌────────────────────┐
|
|
1038
|
+
│ Mock selected? │
|
|
1039
|
+
│ (Discovery Q4) │
|
|
1040
|
+
└─────┬──────────────┘
|
|
1041
|
+
│
|
|
1042
|
+
┌───┴───┐
|
|
1043
|
+
│ │
|
|
1044
|
+
YES NO
|
|
1045
|
+
│ │
|
|
1046
|
+
▼ │
|
|
1047
|
+
┌─────────────┐│
|
|
1048
|
+
│ Phase 0.5: ││
|
|
1049
|
+
│ Mock Upload ││
|
|
1050
|
+
│ Pause ││
|
|
1051
|
+
└──────┬──────┘│
|
|
1052
|
+
│ │
|
|
1053
|
+
▼ │
|
|
1054
|
+
┌─────────────┐│
|
|
1055
|
+
│ Phase 0.6: ││
|
|
1056
|
+
│ mock-analyst││
|
|
1057
|
+
└──────┬──────┘│
|
|
1058
|
+
│ │
|
|
1059
|
+
└───┬───┘
|
|
1060
|
+
│
|
|
1061
|
+
▼
|
|
1062
|
+
┌─────────────────┐
|
|
1063
|
+
│ BLOQUE 1: │
|
|
1064
|
+
│ PLANNING │
|
|
1065
|
+
│ (1-2) PM + Arc │
|
|
1066
|
+
│ receives context│
|
|
1067
|
+
└────────┬────────┘
|
|
1068
|
+
│
|
|
1069
|
+
▼
|
|
1070
|
+
┌─────────────────┐
|
|
1071
|
+
│ BLOQUE 2: │
|
|
1072
|
+
│ FOUNDATION │
|
|
1073
|
+
│ (3-4) │
|
|
1074
|
+
└────────┬────────┘
|
|
1075
|
+
│
|
|
1076
|
+
▼
|
|
1077
|
+
┌────────────┐
|
|
1078
|
+
│ GATE: db- │──NO──► Fix db-entity-developer
|
|
1079
|
+
│ entity- │ │
|
|
1080
|
+
│ validator │◄───────┘
|
|
1081
|
+
└─────┬──────┘
|
|
1082
|
+
│YES
|
|
1083
|
+
▼
|
|
1084
|
+
┌─────────────────┐
|
|
1085
|
+
│ BLOQUE 3: │
|
|
1086
|
+
│ BACKEND TDD │
|
|
1087
|
+
│ (5-6) │
|
|
1088
|
+
└────────┬────────┘
|
|
1089
|
+
│
|
|
1090
|
+
▼
|
|
1091
|
+
┌────────────┐
|
|
1092
|
+
│ GATE: │──NO──► Fix backend-developer
|
|
1093
|
+
│ backend- │ │
|
|
1094
|
+
│ validator │◄───────┘
|
|
1095
|
+
└─────┬──────┘
|
|
1096
|
+
│YES
|
|
1097
|
+
▼
|
|
1098
|
+
┌─────────────────┐
|
|
1099
|
+
│ BLOQUE 5: │
|
|
1100
|
+
│ FRONTEND │
|
|
1101
|
+
│ (8-9) │
|
|
1102
|
+
└────────┬────────┘
|
|
1103
|
+
│
|
|
1104
|
+
▼
|
|
1105
|
+
┌────────────┐
|
|
1106
|
+
│ GATE: │──NO──► Fix frontend-developer
|
|
1107
|
+
│ frontend- │ │
|
|
1108
|
+
│ validator │◄───────┘
|
|
1109
|
+
└─────┬──────┘
|
|
1110
|
+
│YES
|
|
1111
|
+
▼
|
|
1112
|
+
┌─────────────────┐
|
|
1113
|
+
│ BLOQUE 6: │
|
|
1114
|
+
│ CODE REVIEW │──Issues──► Fix developer
|
|
1115
|
+
│ (10) │ │
|
|
1116
|
+
└────────┬────────┘◄───────────┘
|
|
1117
|
+
│OK
|
|
1118
|
+
▼
|
|
1119
|
+
┌─────────────────┐
|
|
1120
|
+
│ BLOQUE 7: │
|
|
1121
|
+
│ QA │
|
|
1122
|
+
│ (11-12) │
|
|
1123
|
+
└────────┬────────┘
|
|
1124
|
+
│
|
|
1125
|
+
▼
|
|
1126
|
+
┌─────────────────────┐
|
|
1127
|
+
│ QA MANUAL │
|
|
1128
|
+
│ (Orquestador) │──Errors──► Fix developer
|
|
1129
|
+
│ │ │
|
|
1130
|
+
└──────────┬──────────┘◄───────────┘
|
|
1131
|
+
│OK
|
|
1132
|
+
▼
|
|
1133
|
+
┌────────────────────┐
|
|
1134
|
+
│ Cypress requerido? │
|
|
1135
|
+
│ (PM Decision) │
|
|
1136
|
+
└─────┬──────────────┘
|
|
1137
|
+
│
|
|
1138
|
+
┌───┴───┐
|
|
1139
|
+
│ │
|
|
1140
|
+
YES NO
|
|
1141
|
+
│ │
|
|
1142
|
+
▼ │
|
|
1143
|
+
┌─────────────┐│
|
|
1144
|
+
│ qa-auto ││
|
|
1145
|
+
│ [OPTIONAL] ││
|
|
1146
|
+
└──────┬──────┘│
|
|
1147
|
+
│ │
|
|
1148
|
+
└───┬───┘
|
|
1149
|
+
│
|
|
1150
|
+
▼
|
|
1151
|
+
┌─────────────────┐
|
|
1152
|
+
│ BLOQUE 8: │
|
|
1153
|
+
│ FINALIZATION │
|
|
1154
|
+
│ (13-14) │
|
|
1155
|
+
└────────┬────────┘
|
|
1156
|
+
│
|
|
1157
|
+
├──► [CONDITIONAL] documentation-writer
|
|
1158
|
+
│ ├── Public docs
|
|
1159
|
+
│ ├── Superadmin docs
|
|
1160
|
+
│ └── Skills
|
|
1161
|
+
│
|
|
1162
|
+
└──► [OPTIONAL] unit-test-writer
|
|
1163
|
+
└── Coverage 100%
|
|
1164
|
+
│
|
|
1165
|
+
▼
|
|
1166
|
+
DONE
|
|
1167
|
+
```
|
|
1168
|
+
|
|
1169
|
+
---
|
|
1170
|
+
|
|
1171
|
+
## Evolution Summary
|
|
1172
|
+
|
|
1173
|
+
```
|
|
1174
|
+
v4.0 (Original) v1.0 (Current)
|
|
1175
|
+
─────────────────────────────────────
|
|
1176
|
+
19 phases → 15 phases (-21%)
|
|
1177
|
+
8 gates → 4 mandatory (-50%)
|
|
1178
|
+
15+ subagents → 8-10 subagents
|
|
1179
|
+
1 phase type → 5 phase types
|
|
1180
|
+
PM asks Qs → Claude asks Qs (consistent)
|
|
1181
|
+
No Task Manager → ClickUp/Jira/Linear/Asana
|
|
1182
|
+
No Mocks → Mock analysis with mock-analyst
|
|
1183
|
+
Basic docs → 3 doc layers
|
|
1184
|
+
QA subagent → QA orchestrator
|
|
1185
|
+
Fixed testing → Configurable testing
|
|
1186
|
+
```
|
|
1187
|
+
|
|
1188
|
+
---
|
|
1189
|
+
|
|
1190
|
+
## Related Documentation
|
|
1191
|
+
|
|
1192
|
+
- `workflows/tweak.md` - For simple adjustments (XS-S)
|
|
1193
|
+
- `workflows/task.md` - For medium complexity (S-M-L)
|
|
1194
|
+
- `commands/session-start.md` - Start command details
|
|
1195
|
+
- `commands/session-execute.md` - Execution details
|
|
1196
|
+
- `skills/README.md` - All available skills
|
|
1197
|
+
|
|
1198
|
+
---
|
|
1199
|
+
|
|
1200
|
+
## Version History
|
|
1201
|
+
|
|
1202
|
+
| Version | Changes |
|
|
1203
|
+
|---------|---------|
|
|
1204
|
+
| v1.0 | First public version: 15 phases, English documentation |
|
|
1205
|
+
| v1.1 | Mock analysis moved to Phase 0.6, Block 4 deprecated |
|
|
1206
|
+
| v5.2 | Added mock-analyst phase (legacy) |
|
|
1207
|
+
| v4.0 | Original 19-phase workflow |
|