aped-method 1.8.0 → 1.9.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/package.json +1 -1
- package/src/templates/references.js +312 -0
- package/src/templates/scripts.js +99 -0
- package/src/templates/skills.js +12 -0
package/package.json
CHANGED
|
@@ -50,6 +50,22 @@ export function references(c) {
|
|
|
50
50
|
path: `${a}/aped-ux/references/ux-patterns.md`,
|
|
51
51
|
content: UX_PATTERNS,
|
|
52
52
|
},
|
|
53
|
+
{
|
|
54
|
+
path: `${a}/aped-s/references/status-format.md`,
|
|
55
|
+
content: STATUS_FORMAT,
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
path: `${a}/aped-c/references/scope-change-guide.md`,
|
|
59
|
+
content: SCOPE_CHANGE_GUIDE,
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
path: `${a}/aped-ctx/references/analysis-checklist.md`,
|
|
63
|
+
content: ANALYSIS_CHECKLIST,
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
path: `${a}/aped-qa/references/test-patterns.md`,
|
|
67
|
+
content: TEST_PATTERNS,
|
|
68
|
+
},
|
|
53
69
|
];
|
|
54
70
|
}
|
|
55
71
|
|
|
@@ -799,3 +815,299 @@ Rules ranked by impact. Apply in order — never skip a higher-priority rule for
|
|
|
799
815
|
- [ ] Reduced motion and dynamic text size supported
|
|
800
816
|
- [ ] ARIA roles/states announced correctly
|
|
801
817
|
`;
|
|
818
|
+
|
|
819
|
+
const STATUS_FORMAT = `# Sprint Status Dashboard Format
|
|
820
|
+
|
|
821
|
+
## Pipeline Progress Bar
|
|
822
|
+
|
|
823
|
+
Display format:
|
|
824
|
+
\`\`\`
|
|
825
|
+
Pipeline: A[✓] → P[✓] → UX[✓] → E[✓] → D[▶] → R[ ]
|
|
826
|
+
\`\`\`
|
|
827
|
+
|
|
828
|
+
Symbols:
|
|
829
|
+
- \`✓\` = phase done
|
|
830
|
+
- \`▶\` = phase in-progress
|
|
831
|
+
- \` \` = phase not started
|
|
832
|
+
- \`—\` = phase skipped
|
|
833
|
+
|
|
834
|
+
## Epic Progress Bar
|
|
835
|
+
|
|
836
|
+
\`\`\`
|
|
837
|
+
Epic 1: {{title}} [████████░░] 80% (4/5 stories)
|
|
838
|
+
\`\`\`
|
|
839
|
+
|
|
840
|
+
- Bar: 10 chars wide, \`█\` for done, \`░\` for remaining
|
|
841
|
+
- Show fraction and percentage
|
|
842
|
+
|
|
843
|
+
## Story Status Icons
|
|
844
|
+
|
|
845
|
+
| Status | Icon | Meaning |
|
|
846
|
+
|--------|------|---------|
|
|
847
|
+
| done | ✓ | Story completed and reviewed |
|
|
848
|
+
| review | ⟳ | Waiting for adversarial review |
|
|
849
|
+
| in-progress | ▶ | Currently being implemented |
|
|
850
|
+
| ready-for-dev | ○ | Ready to start |
|
|
851
|
+
| backlog | · | Not yet planned |
|
|
852
|
+
| blocked | ✗ | Blocked by issue |
|
|
853
|
+
|
|
854
|
+
## Blocker Categories
|
|
855
|
+
|
|
856
|
+
- **[AI-Review]** items — review findings not yet addressed
|
|
857
|
+
- **HALT** — dev stopped due to missing config/dependency/ambiguity
|
|
858
|
+
- **Stuck** — in-progress for multiple sessions without progress
|
|
859
|
+
- **Dependency** — blocked by another story
|
|
860
|
+
|
|
861
|
+
## Next Action Logic
|
|
862
|
+
|
|
863
|
+
| Current State | Suggestion |
|
|
864
|
+
|---------------|------------|
|
|
865
|
+
| Stories ready-for-dev | "Run /aped-d to implement next story" |
|
|
866
|
+
| Stories in review | "Run /aped-r to review completed story" |
|
|
867
|
+
| All stories done | "Pipeline complete! Run /aped-qa for E2E tests" |
|
|
868
|
+
| Blockers found | Describe each blocker and resolution path |
|
|
869
|
+
| No state file | "Run /aped-a to start the pipeline" |
|
|
870
|
+
`;
|
|
871
|
+
|
|
872
|
+
const SCOPE_CHANGE_GUIDE = `# Scope Change Management Guide
|
|
873
|
+
|
|
874
|
+
## Impact Assessment Matrix
|
|
875
|
+
|
|
876
|
+
| Change Type | PRD | UX | Epics | Stories | Code | Severity |
|
|
877
|
+
|-------------|-----|-----|-------|---------|------|----------|
|
|
878
|
+
| New feature added | Add FRs | Add screens | New stories | Create | None | Minor |
|
|
879
|
+
| Feature removed | Remove FRs | Remove screens | Archive stories | Archive | May delete | Minor |
|
|
880
|
+
| FR modified | Update FR | May update | Update story ACs | Update | May refactor | Medium |
|
|
881
|
+
| Architecture change | Update NFRs | May rebuild | Update all Dev Notes | Reset | May rewrite | Major |
|
|
882
|
+
| Priority reorder | No change | No change | Reorder | Reset status | None | Minor |
|
|
883
|
+
| Complete pivot | Restart | Restart | Restart | Restart | Archive | Critical |
|
|
884
|
+
|
|
885
|
+
## Change Process
|
|
886
|
+
|
|
887
|
+
### Step 1: Document the Change
|
|
888
|
+
- What changed and why
|
|
889
|
+
- Who requested it (user, stakeholder, technical discovery)
|
|
890
|
+
- Date of change
|
|
891
|
+
|
|
892
|
+
### Step 2: Impact Analysis
|
|
893
|
+
- List all affected artifacts (PRD sections, stories, code files)
|
|
894
|
+
- Classify severity (minor/medium/major/critical)
|
|
895
|
+
- Estimate effort to apply change
|
|
896
|
+
|
|
897
|
+
### Step 3: User Confirmation
|
|
898
|
+
- Present impact summary to user
|
|
899
|
+
- Get explicit "proceed" before making changes
|
|
900
|
+
- For major/critical: warn about in-progress work loss
|
|
901
|
+
|
|
902
|
+
### Step 4: Execute Change
|
|
903
|
+
- Archive affected artifacts to \`{output}/archive/{date}/\`
|
|
904
|
+
- Apply changes top-down (PRD → UX → Epics → Stories)
|
|
905
|
+
- Re-validate at each level (scripts)
|
|
906
|
+
- Update state.yaml
|
|
907
|
+
|
|
908
|
+
### Step 5: Verify Consistency
|
|
909
|
+
- FR coverage still 100%
|
|
910
|
+
- No orphan stories
|
|
911
|
+
- No broken dependencies
|
|
912
|
+
- State reflects new reality
|
|
913
|
+
|
|
914
|
+
## Scope Creep Detection
|
|
915
|
+
|
|
916
|
+
Warning signs:
|
|
917
|
+
- Total FRs grew >20% from original PRD
|
|
918
|
+
- Epic count increased
|
|
919
|
+
- Stories consistently exceed single-session size
|
|
920
|
+
- "Just one more thing" pattern repeating
|
|
921
|
+
|
|
922
|
+
Response:
|
|
923
|
+
- Flag to user with metrics
|
|
924
|
+
- Suggest moving additions to Growth phase
|
|
925
|
+
- Enforce MVP discipline
|
|
926
|
+
`;
|
|
927
|
+
|
|
928
|
+
const ANALYSIS_CHECKLIST = `# Brownfield Project Analysis Checklist
|
|
929
|
+
|
|
930
|
+
## Phase 1: Structure Discovery
|
|
931
|
+
|
|
932
|
+
- [ ] Identify primary language(s) from config files
|
|
933
|
+
- [ ] Map directory structure (max 3 levels)
|
|
934
|
+
- [ ] Find entry points (main, index, app, server)
|
|
935
|
+
- [ ] Count: files, LOC, languages
|
|
936
|
+
- [ ] Identify package manager (npm, yarn, pnpm, cargo, pip, go mod)
|
|
937
|
+
- [ ] Check for monorepo structure (workspaces, packages/)
|
|
938
|
+
|
|
939
|
+
## Phase 2: Architecture Mapping
|
|
940
|
+
|
|
941
|
+
- [ ] Identify pattern (MVC, hexagonal, microservices, monolith, serverless)
|
|
942
|
+
- [ ] Map data flow: entry → processing → storage → response
|
|
943
|
+
- [ ] List databases and data stores
|
|
944
|
+
- [ ] List external API integrations
|
|
945
|
+
- [ ] List message queues/event systems
|
|
946
|
+
- [ ] Identify caching layer
|
|
947
|
+
- [ ] Map authentication/authorization flow
|
|
948
|
+
|
|
949
|
+
## Phase 3: Convention Extraction
|
|
950
|
+
|
|
951
|
+
- [ ] File naming convention (camelCase, kebab-case, PascalCase)
|
|
952
|
+
- [ ] Function/method naming convention
|
|
953
|
+
- [ ] Code organization (feature-based, layer-based, domain-based)
|
|
954
|
+
- [ ] Error handling pattern (try/catch, Result type, error codes)
|
|
955
|
+
- [ ] Logging approach (structured, unstructured, library used)
|
|
956
|
+
- [ ] Config management (env vars, .env files, config files, vault)
|
|
957
|
+
- [ ] Linting/formatting (ESLint, Prettier, Biome, rustfmt)
|
|
958
|
+
|
|
959
|
+
## Phase 4: Dependency Audit
|
|
960
|
+
|
|
961
|
+
- [ ] List production dependencies with versions
|
|
962
|
+
- [ ] Flag outdated packages (major versions behind)
|
|
963
|
+
- [ ] Check for known security advisories
|
|
964
|
+
- [ ] Identify lock file type
|
|
965
|
+
- [ ] Note any vendored/bundled dependencies
|
|
966
|
+
- [ ] Check for deprecated packages
|
|
967
|
+
|
|
968
|
+
## Phase 5: Testing
|
|
969
|
+
|
|
970
|
+
- [ ] Identify test framework(s)
|
|
971
|
+
- [ ] Estimate test coverage (file count, coverage reports)
|
|
972
|
+
- [ ] Check for CI/CD pipeline config
|
|
973
|
+
- [ ] Identify test types present (unit, integration, E2E)
|
|
974
|
+
- [ ] Check for test fixtures/factories/mocks
|
|
975
|
+
|
|
976
|
+
## Output Format
|
|
977
|
+
|
|
978
|
+
\`\`\`markdown
|
|
979
|
+
# Project Context: {name}
|
|
980
|
+
|
|
981
|
+
## Tech Stack
|
|
982
|
+
- Language: {lang} {version}
|
|
983
|
+
- Framework: {framework} {version}
|
|
984
|
+
- Database: {db}
|
|
985
|
+
- Test Framework: {test_fw}
|
|
986
|
+
|
|
987
|
+
## Architecture
|
|
988
|
+
- Pattern: {pattern}
|
|
989
|
+
- Entry: {entry_point}
|
|
990
|
+
- Modules: {key_modules}
|
|
991
|
+
|
|
992
|
+
## Conventions
|
|
993
|
+
- Files: {naming}
|
|
994
|
+
- Code style: {linter}
|
|
995
|
+
- Error handling: {pattern}
|
|
996
|
+
|
|
997
|
+
## Dependencies ({count} total)
|
|
998
|
+
| Package | Version | Purpose | Status |
|
|
999
|
+
|---------|---------|---------|--------|
|
|
1000
|
+
|
|
1001
|
+
## Integration Points
|
|
1002
|
+
| Service | Purpose | Protocol |
|
|
1003
|
+
|---------|---------|----------|
|
|
1004
|
+
|
|
1005
|
+
## Notes
|
|
1006
|
+
- {important_context_for_dev}
|
|
1007
|
+
\`\`\`
|
|
1008
|
+
`;
|
|
1009
|
+
|
|
1010
|
+
const TEST_PATTERNS = `# E2E & Integration Test Patterns
|
|
1011
|
+
|
|
1012
|
+
## Framework Selection
|
|
1013
|
+
|
|
1014
|
+
| Project Type | E2E Framework | Integration Framework |
|
|
1015
|
+
|-------------|---------------|----------------------|
|
|
1016
|
+
| Node.js + React | Playwright or Cypress | Supertest + Vitest |
|
|
1017
|
+
| Node.js + API only | - | Supertest + Jest/Vitest |
|
|
1018
|
+
| Next.js | Playwright | Next.js test utils |
|
|
1019
|
+
| Python + Django/Flask | Playwright | pytest + httpx |
|
|
1020
|
+
| Python + FastAPI | Playwright | pytest + httpx |
|
|
1021
|
+
| Go | - | go test + httptest |
|
|
1022
|
+
| Rust | - | reqwest + tokio::test |
|
|
1023
|
+
|
|
1024
|
+
## E2E Test Structure
|
|
1025
|
+
|
|
1026
|
+
\`\`\`
|
|
1027
|
+
tests/e2e/
|
|
1028
|
+
{journey-name}.test.{ext} # One file per user journey
|
|
1029
|
+
fixtures/ # Test data
|
|
1030
|
+
helpers/ # Page objects, utilities
|
|
1031
|
+
\`\`\`
|
|
1032
|
+
|
|
1033
|
+
### User Journey Test Template
|
|
1034
|
+
|
|
1035
|
+
\`\`\`
|
|
1036
|
+
describe("{Journey Name}", () => {
|
|
1037
|
+
test("happy path: {description}", async () => {
|
|
1038
|
+
// Given: {precondition from AC}
|
|
1039
|
+
// When: {action from AC}
|
|
1040
|
+
// Then: {outcome from AC}
|
|
1041
|
+
});
|
|
1042
|
+
|
|
1043
|
+
test("error: {error scenario}", async () => {
|
|
1044
|
+
// Given: {invalid state}
|
|
1045
|
+
// When: {action}
|
|
1046
|
+
// Then: {error handling}
|
|
1047
|
+
});
|
|
1048
|
+
|
|
1049
|
+
test("edge: {edge case}", async () => {
|
|
1050
|
+
// Given: {boundary condition}
|
|
1051
|
+
// When: {action}
|
|
1052
|
+
// Then: {expected behavior}
|
|
1053
|
+
});
|
|
1054
|
+
});
|
|
1055
|
+
\`\`\`
|
|
1056
|
+
|
|
1057
|
+
## Integration Test Structure
|
|
1058
|
+
|
|
1059
|
+
\`\`\`
|
|
1060
|
+
tests/integration/
|
|
1061
|
+
{endpoint-or-service}.test.{ext}
|
|
1062
|
+
fixtures/
|
|
1063
|
+
helpers/
|
|
1064
|
+
\`\`\`
|
|
1065
|
+
|
|
1066
|
+
### API Test Template
|
|
1067
|
+
|
|
1068
|
+
\`\`\`
|
|
1069
|
+
describe("{Endpoint/Service}", () => {
|
|
1070
|
+
test("POST /api/resource - creates resource", async () => {
|
|
1071
|
+
// Arrange: valid payload
|
|
1072
|
+
// Act: POST request
|
|
1073
|
+
// Assert: 201, response body, DB state
|
|
1074
|
+
});
|
|
1075
|
+
|
|
1076
|
+
test("POST /api/resource - 400 on invalid input", async () => {
|
|
1077
|
+
// Arrange: invalid payload
|
|
1078
|
+
// Act: POST request
|
|
1079
|
+
// Assert: 400, error message
|
|
1080
|
+
});
|
|
1081
|
+
|
|
1082
|
+
test("GET /api/resource/:id - 404 on missing", async () => {
|
|
1083
|
+
// Arrange: non-existent ID
|
|
1084
|
+
// Act: GET request
|
|
1085
|
+
// Assert: 404
|
|
1086
|
+
});
|
|
1087
|
+
|
|
1088
|
+
test("auth: rejects unauthenticated requests", async () => {
|
|
1089
|
+
// Arrange: no auth header
|
|
1090
|
+
// Act: request
|
|
1091
|
+
// Assert: 401
|
|
1092
|
+
});
|
|
1093
|
+
});
|
|
1094
|
+
\`\`\`
|
|
1095
|
+
|
|
1096
|
+
## Test Coverage Goals
|
|
1097
|
+
|
|
1098
|
+
| Category | Target | How to verify |
|
|
1099
|
+
|----------|--------|---------------|
|
|
1100
|
+
| AC coverage | 100% of ACs have tests | Map each AC → test |
|
|
1101
|
+
| Happy paths | Every user journey | 1 E2E test per journey |
|
|
1102
|
+
| Error paths | All error states | 1 test per error scenario |
|
|
1103
|
+
| Auth boundaries | All protected routes | Unauthorized + forbidden |
|
|
1104
|
+
| Edge cases | Empty, null, max values | Boundary value analysis |
|
|
1105
|
+
|
|
1106
|
+
## Anti-Patterns
|
|
1107
|
+
|
|
1108
|
+
- **Flaky tests**: Don't depend on timing. Use waitFor, retries, explicit waits.
|
|
1109
|
+
- **Shared state**: Each test must be independent. Reset DB/state before each.
|
|
1110
|
+
- **Hardcoded selectors**: Use data-testid or accessible roles, not CSS classes.
|
|
1111
|
+
- **Testing implementation**: Test behavior, not internal structure.
|
|
1112
|
+
- **No assertions**: Every test must assert something. \`expect(true).toBe(true)\` is not a test.
|
|
1113
|
+
`;
|
package/src/templates/scripts.js
CHANGED
|
@@ -338,6 +338,105 @@ if [[ \${#IN_STORY_NOT_GIT[@]} -gt 0 ]]; then
|
|
|
338
338
|
exit 1
|
|
339
339
|
fi
|
|
340
340
|
|
|
341
|
+
exit 0
|
|
342
|
+
`,
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
path: `${a}/aped-ux/scripts/validate-ux.sh`,
|
|
346
|
+
executable: true,
|
|
347
|
+
content: `#!/usr/bin/env bash
|
|
348
|
+
# Validate UX design spec completeness
|
|
349
|
+
# Usage: validate-ux.sh <ux-dir>
|
|
350
|
+
# Exit 0 if valid, exit 1 with missing items listed
|
|
351
|
+
|
|
352
|
+
set -euo pipefail
|
|
353
|
+
|
|
354
|
+
if [[ $# -ne 1 ]]; then
|
|
355
|
+
echo "Usage: $0 <ux-directory>"
|
|
356
|
+
exit 1
|
|
357
|
+
fi
|
|
358
|
+
|
|
359
|
+
UX_DIR="$1"
|
|
360
|
+
|
|
361
|
+
if [[ ! -d "$UX_DIR" ]]; then
|
|
362
|
+
echo "ERROR: Directory not found: $UX_DIR"
|
|
363
|
+
exit 1
|
|
364
|
+
fi
|
|
365
|
+
|
|
366
|
+
ISSUES=()
|
|
367
|
+
|
|
368
|
+
# Check required output files
|
|
369
|
+
REQUIRED_FILES=(
|
|
370
|
+
"design-spec.md"
|
|
371
|
+
"screen-inventory.md"
|
|
372
|
+
"components.md"
|
|
373
|
+
"flows.md"
|
|
374
|
+
)
|
|
375
|
+
|
|
376
|
+
for file in "\${REQUIRED_FILES[@]}"; do
|
|
377
|
+
if [[ ! -f "$UX_DIR/$file" ]]; then
|
|
378
|
+
ISSUES+=("MISSING FILE: $UX_DIR/$file")
|
|
379
|
+
fi
|
|
380
|
+
done
|
|
381
|
+
|
|
382
|
+
# Check design-spec.md has required sections
|
|
383
|
+
if [[ -f "$UX_DIR/design-spec.md" ]]; then
|
|
384
|
+
SPEC_SECTIONS=(
|
|
385
|
+
"## Tech Stack"
|
|
386
|
+
"## Architecture"
|
|
387
|
+
"## Conventions"
|
|
388
|
+
"## Dependencies"
|
|
389
|
+
)
|
|
390
|
+
|
|
391
|
+
# Reuse pattern: check for sections about design tokens and UI library
|
|
392
|
+
if ! grep -q "color\\|Color\\|palette\\|token" "$UX_DIR/design-spec.md" 2>/dev/null; then
|
|
393
|
+
ISSUES+=("MISSING CONTENT: design-spec.md has no color/token definitions")
|
|
394
|
+
fi
|
|
395
|
+
|
|
396
|
+
if ! grep -q "typography\\|Typography\\|font\\|Font" "$UX_DIR/design-spec.md" 2>/dev/null; then
|
|
397
|
+
ISSUES+=("MISSING CONTENT: design-spec.md has no typography definitions")
|
|
398
|
+
fi
|
|
399
|
+
fi
|
|
400
|
+
|
|
401
|
+
# Check screen-inventory.md has content
|
|
402
|
+
if [[ -f "$UX_DIR/screen-inventory.md" ]]; then
|
|
403
|
+
SCREEN_COUNT=$(grep -cE '^\\|.*\\|.*\\|' "$UX_DIR/screen-inventory.md" 2>/dev/null || echo 0)
|
|
404
|
+
if [[ "$SCREEN_COUNT" -lt 3 ]]; then
|
|
405
|
+
ISSUES+=("LOW SCREEN COUNT: Found $SCREEN_COUNT screens (expected at least 3)")
|
|
406
|
+
fi
|
|
407
|
+
fi
|
|
408
|
+
|
|
409
|
+
# Check components.md has component entries
|
|
410
|
+
if [[ -f "$UX_DIR/components.md" ]]; then
|
|
411
|
+
COMP_COUNT=$(grep -cE '^#{2,3} ' "$UX_DIR/components.md" 2>/dev/null || echo 0)
|
|
412
|
+
if [[ "$COMP_COUNT" -lt 3 ]]; then
|
|
413
|
+
ISSUES+=("LOW COMPONENT COUNT: Found $COMP_COUNT components (expected at least 3)")
|
|
414
|
+
fi
|
|
415
|
+
fi
|
|
416
|
+
|
|
417
|
+
# Check preview app exists
|
|
418
|
+
PREVIEW_DIR="\${UX_DIR}-preview"
|
|
419
|
+
if [[ -d "$PREVIEW_DIR" ]]; then
|
|
420
|
+
if [[ ! -f "$PREVIEW_DIR/package.json" ]]; then
|
|
421
|
+
ISSUES+=("MISSING: Preview app has no package.json")
|
|
422
|
+
fi
|
|
423
|
+
if [[ ! -d "$PREVIEW_DIR/src" ]]; then
|
|
424
|
+
ISSUES+=("MISSING: Preview app has no src/ directory")
|
|
425
|
+
fi
|
|
426
|
+
else
|
|
427
|
+
ISSUES+=("WARNING: No preview app at $PREVIEW_DIR (optional but recommended)")
|
|
428
|
+
fi
|
|
429
|
+
|
|
430
|
+
# Report
|
|
431
|
+
if [[ \${#ISSUES[@]} -gt 0 ]]; then
|
|
432
|
+
echo "UX VALIDATION FAILED — Issues found:"
|
|
433
|
+
for issue in "\${ISSUES[@]}"; do
|
|
434
|
+
echo " - $issue"
|
|
435
|
+
done
|
|
436
|
+
exit 1
|
|
437
|
+
fi
|
|
438
|
+
|
|
439
|
+
echo "UX VALIDATION PASSED — All required files and content present"
|
|
341
440
|
exit 0
|
|
342
441
|
`,
|
|
343
442
|
},
|
package/src/templates/skills.js
CHANGED
|
@@ -860,6 +860,14 @@ mkdir -p ${o}/ux
|
|
|
860
860
|
5. Write \`${o}/ux/flows.md\` — navigation flow diagrams
|
|
861
861
|
6. Take **screenshots** of each screen at desktop resolution → \`${o}/ux/screenshots/\`
|
|
862
862
|
|
|
863
|
+
## Validation
|
|
864
|
+
|
|
865
|
+
\`\`\`bash
|
|
866
|
+
bash ${a}/aped-ux/scripts/validate-ux.sh ${o}/ux
|
|
867
|
+
\`\`\`
|
|
868
|
+
|
|
869
|
+
If validation fails: fix missing files or content and re-validate.
|
|
870
|
+
|
|
863
871
|
## State Update
|
|
864
872
|
|
|
865
873
|
Update \`${o}/state.yaml\`:
|
|
@@ -913,6 +921,7 @@ metadata:
|
|
|
913
921
|
|
|
914
922
|
1. Read \`${a}/config.yaml\` — extract \`communication_language\`, \`ticket_system\`
|
|
915
923
|
2. Read \`${o}/state.yaml\` — load full pipeline and sprint state
|
|
924
|
+
3. Read \`${a}/aped-s/references/status-format.md\` for display conventions
|
|
916
925
|
|
|
917
926
|
## Pipeline Overview
|
|
918
927
|
|
|
@@ -1004,6 +1013,7 @@ Use when requirements change, priorities shift, or the current approach needs re
|
|
|
1004
1013
|
1. Read \`${a}/config.yaml\` — extract config
|
|
1005
1014
|
2. Read \`${o}/state.yaml\` — understand current pipeline state
|
|
1006
1015
|
3. Read existing artifacts: brief, PRD, epics, stories
|
|
1016
|
+
4. Read \`${a}/aped-c/references/scope-change-guide.md\` for impact matrix and process
|
|
1007
1017
|
|
|
1008
1018
|
## Impact Assessment
|
|
1009
1019
|
|
|
@@ -1105,6 +1115,7 @@ Use on existing codebases to generate project context before running the APED pi
|
|
|
1105
1115
|
|
|
1106
1116
|
1. Read \`${a}/config.yaml\` — extract config
|
|
1107
1117
|
2. Verify this is a brownfield project (existing code, not greenfield)
|
|
1118
|
+
3. Read \`${a}/aped-ctx/references/analysis-checklist.md\` for the full analysis checklist
|
|
1108
1119
|
|
|
1109
1120
|
## Codebase Analysis
|
|
1110
1121
|
|
|
@@ -1223,6 +1234,7 @@ Generate comprehensive end-to-end and integration tests for completed stories or
|
|
|
1223
1234
|
|
|
1224
1235
|
1. Read \`${a}/config.yaml\` — extract config
|
|
1225
1236
|
2. Read \`${o}/state.yaml\` — find completed stories/epics
|
|
1237
|
+
3. Read \`${a}/aped-qa/references/test-patterns.md\` for framework selection and test templates
|
|
1226
1238
|
|
|
1227
1239
|
## Scope Selection
|
|
1228
1240
|
|