aped-method 1.0.0 → 1.6.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.
@@ -5,7 +5,7 @@ export function commands(c) {
5
5
  path: `${c.commandsDir}/aped-a.md`,
6
6
  content: `---
7
7
  name: aped-a
8
- description: 'Analyze project through parallel research. Use when user says "analyze", "research project", or "aped analyze"'
8
+ description: 'Analyzes a new project idea through parallel market, domain, and technical research. Use when user says "research idea", "aped analyze", or invokes /aped-a. Not for existing codebases — use aped-ctx for brownfield projects.'
9
9
  ---
10
10
 
11
11
  Read and follow the SKILL.md at $PROJECT_ROOT/${a}/aped-a/SKILL.md
@@ -15,7 +15,7 @@ Read and follow the SKILL.md at $PROJECT_ROOT/${a}/aped-a/SKILL.md
15
15
  path: `${c.commandsDir}/aped-p.md`,
16
16
  content: `---
17
17
  name: aped-p
18
- description: 'Generate PRD from product brief. Use when user says "create PRD", "generate PRD", or "aped prd"'
18
+ description: 'Generates PRD autonomously from product brief. Use when user says "create PRD", "generate PRD", "aped prd", or invokes /aped-p.'
19
19
  ---
20
20
 
21
21
  Read and follow the SKILL.md at $PROJECT_ROOT/${a}/aped-p/SKILL.md
@@ -25,7 +25,7 @@ Read and follow the SKILL.md at $PROJECT_ROOT/${a}/aped-p/SKILL.md
25
25
  path: `${c.commandsDir}/aped-e.md`,
26
26
  content: `---
27
27
  name: aped-e
28
- description: 'Create epics and stories from PRD. Use when user says "create epics", "break into stories", or "aped epics"'
28
+ description: 'Creates epics and stories from PRD with full FR coverage. Use when user says "create epics", "break into stories", "aped epics", or invokes /aped-e.'
29
29
  ---
30
30
 
31
31
  Read and follow the SKILL.md at $PROJECT_ROOT/${a}/aped-e/SKILL.md
@@ -35,7 +35,7 @@ Read and follow the SKILL.md at $PROJECT_ROOT/${a}/aped-e/SKILL.md
35
35
  path: `${c.commandsDir}/aped-d.md`,
36
36
  content: `---
37
37
  name: aped-d
38
- description: 'Dev sprint - implement next story with TDD. Use when user says "start dev", "implement story", or "aped dev"'
38
+ description: 'Implements next story with TDD red-green-refactor cycle. Use when user says "start dev", "implement story", "aped dev", or invokes /aped-d.'
39
39
  ---
40
40
 
41
41
  Read and follow the SKILL.md at $PROJECT_ROOT/${a}/aped-d/SKILL.md
@@ -45,17 +45,77 @@ Read and follow the SKILL.md at $PROJECT_ROOT/${a}/aped-d/SKILL.md
45
45
  path: `${c.commandsDir}/aped-r.md`,
46
46
  content: `---
47
47
  name: aped-r
48
- description: 'Adversarial code review for completed story. Use when user says "review code", "run review", or "aped review"'
48
+ description: 'Reviews completed stories adversarially with minimum 3 findings. Use when user says "review code", "run review", "aped review", or invokes /aped-r.'
49
49
  ---
50
50
 
51
51
  Read and follow the SKILL.md at $PROJECT_ROOT/${a}/aped-r/SKILL.md
52
+ `,
53
+ },
54
+ {
55
+ path: `${c.commandsDir}/aped-ux.md`,
56
+ content: `---
57
+ name: aped-ux
58
+ description: 'Designs UX specifications from PRD — screen flows, wireframes, component inventory. Use when user says "design UX", "create wireframes", "UX spec", "aped ux", or invokes /aped-ux. Runs between PRD and Epics phases.'
59
+ ---
60
+
61
+ Read and follow the SKILL.md at $PROJECT_ROOT/${a}/aped-ux/SKILL.md
62
+ `,
63
+ },
64
+ {
65
+ path: `${c.commandsDir}/aped-s.md`,
66
+ content: `---
67
+ name: aped-s
68
+ description: 'Shows sprint status dashboard with progress, blockers, and next actions. Use when user says "sprint status", "show progress", "aped status", or invokes /aped-s.'
69
+ ---
70
+
71
+ Read and follow the SKILL.md at $PROJECT_ROOT/${a}/aped-s/SKILL.md
72
+ `,
73
+ },
74
+ {
75
+ path: `${c.commandsDir}/aped-c.md`,
76
+ content: `---
77
+ name: aped-c
78
+ description: 'Manages scope changes and pivots during development with impact analysis. Use when user says "correct course", "change scope", "pivot", "aped correct", or invokes /aped-c.'
79
+ ---
80
+
81
+ Read and follow the SKILL.md at $PROJECT_ROOT/${a}/aped-c/SKILL.md
82
+ `,
83
+ },
84
+ {
85
+ path: `${c.commandsDir}/aped-ctx.md`,
86
+ content: `---
87
+ name: aped-ctx
88
+ description: 'Analyzes existing codebase to generate project context for brownfield development. Use when user says "document codebase", "project context", "existing project", "aped context", or invokes /aped-ctx. Not for new project ideation — use aped-a for greenfield.'
89
+ ---
90
+
91
+ Read and follow the SKILL.md at $PROJECT_ROOT/${a}/aped-ctx/SKILL.md
92
+ `,
93
+ },
94
+ {
95
+ path: `${c.commandsDir}/aped-qa.md`,
96
+ content: `---
97
+ name: aped-qa
98
+ description: 'Generates E2E and integration tests from acceptance criteria for completed features. Use when user says "generate tests", "E2E tests", "integration tests", "aped qa", or invokes /aped-qa.'
99
+ ---
100
+
101
+ Read and follow the SKILL.md at $PROJECT_ROOT/${a}/aped-qa/SKILL.md
102
+ `,
103
+ },
104
+ {
105
+ path: `${c.commandsDir}/aped-quick.md`,
106
+ content: `---
107
+ name: aped-quick
108
+ description: 'Implements quick fixes and small features bypassing the full pipeline. Use when user says "quick fix", "quick feature", "hotfix", "aped quick", or invokes /aped-quick.'
109
+ ---
110
+
111
+ Read and follow the SKILL.md at $PROJECT_ROOT/${a}/aped-quick/SKILL.md
52
112
  `,
53
113
  },
54
114
  {
55
115
  path: `${c.commandsDir}/aped-all.md`,
56
116
  content: `---
57
117
  name: aped-all
58
- description: 'Run full APED pipeline (Analyze>PRD>Epics>Dev>Review). Use when user says "run full pipeline", "aped all", or "start from scratch"'
118
+ description: 'Runs the full APED pipeline from Analyze through Review with auto-resume. Use when user says "run full pipeline", "aped all", or invokes /aped-all.'
59
119
  ---
60
120
 
61
121
  Read and follow the SKILL.md at $PROJECT_ROOT/${a}/aped-all/SKILL.md
@@ -1,6 +1,9 @@
1
1
  export function configFiles(c) {
2
2
  const a = c.apedDir;
3
3
  const o = c.outputDir;
4
+ const ts = c.ticketSystem || 'none';
5
+ const gp = c.gitProvider || 'github';
6
+ const ver = c.cliVersion || '0.0.0';
4
7
  return [
5
8
  {
6
9
  path: `${a}/config.yaml`,
@@ -11,10 +14,15 @@ communication_language: ${c.communicationLang}
11
14
  document_output_language: ${c.documentLang}
12
15
  aped_path: ${a}
13
16
  output_path: ${o}
17
+ aped_version: ${ver}
18
+
19
+ # Integrations
20
+ ticket_system: ${ts}
21
+ git_provider: ${gp}
14
22
  `,
15
23
  },
16
24
  {
17
- path: `${a}/state.yaml`,
25
+ path: `${o}/state.yaml`,
18
26
  content: `# APED Pipeline State
19
27
  pipeline:
20
28
  current_phase: "none"
@@ -224,6 +232,35 @@ sprint:
224
232
  ### Completion Notes
225
233
 
226
234
  ### File List
235
+ `,
236
+ },
237
+ {
238
+ path: `${a}/templates/quick-spec.md`,
239
+ content: `# Quick Spec: {{title}}
240
+
241
+ **Date:** {{date}}
242
+ **Author:** {{user_name}}
243
+ **Type:** {{fix|feature|refactor}}
244
+
245
+ ## What
246
+
247
+ <!-- 1-2 sentences: what needs to change -->
248
+
249
+ ## Why
250
+
251
+ <!-- 1 sentence: why this change matters now -->
252
+
253
+ ## Acceptance Criteria
254
+
255
+ - [ ] {{criterion}}
256
+
257
+ ## Files to Change
258
+
259
+ - {{file_path}} — {{what to change}}
260
+
261
+ ## Test Plan
262
+
263
+ - {{test description}}
227
264
  `,
228
265
  },
229
266
  ];
@@ -13,7 +13,7 @@ export function guardrail(c) {
13
13
  set -euo pipefail
14
14
 
15
15
  PROJECT_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
16
- STATE_FILE="$PROJECT_ROOT/${a}/state.yaml"
16
+ STATE_FILE="$PROJECT_ROOT/${o}/state.yaml"
17
17
  CONFIG_FILE="$PROJECT_ROOT/${a}/config.yaml"
18
18
  OUTPUT_DIR="$PROJECT_ROOT/${o}"
19
19
 
@@ -56,6 +56,9 @@ WANTS_CODE=false
56
56
  [[ "$PROMPT_LOWER" =~ (aped-d|/aped-d|dev|implement|code|build|create.*component|create.*service) ]] && WANTS_DEV=true
57
57
  [[ "$PROMPT_LOWER" =~ (aped-r|/aped-r|review|audit) ]] && WANTS_REVIEW=true
58
58
  [[ "$PROMPT_LOWER" =~ (aped-all|/aped-all|full.pipeline|start.from.scratch) ]] && WANTS_ALL=true
59
+ WANTS_QUICK=false
60
+
61
+ [[ "$PROMPT_LOWER" =~ (aped-quick|/aped-quick|quick.fix|quick.feature|hotfix) ]] && WANTS_QUICK=true
59
62
  [[ "$PROMPT_LOWER" =~ (code|implement|write.*function|create.*file|add.*feature|fix.*bug|refactor) ]] && WANTS_CODE=true
60
63
 
61
64
  # ── Check artifact existence ──
@@ -70,8 +73,8 @@ HAS_EPICS=false
70
73
  # ── Phase-aware guardrail logic ──
71
74
  WARNINGS=()
72
75
 
73
- # Phase transition map: none → analyze → prd → epics → dev ↔ review → done
74
- PHASE_ORDER="none analyze prd epics dev review done"
76
+ # Phase transition map: none → analyze → prd → ux → epics → dev ↔ review → done
77
+ PHASE_ORDER="none analyze prd ux epics dev review done"
75
78
 
76
79
  phase_index() {
77
80
  local i=0
@@ -84,6 +87,11 @@ phase_index() {
84
87
 
85
88
  CURRENT_IDX=$(phase_index "$CURRENT_PHASE")
86
89
 
90
+ # Rule 0: Quick mode bypasses pipeline checks
91
+ if [[ "$WANTS_QUICK" == "true" ]]; then
92
+ exit 0
93
+ fi
94
+
87
95
  # Rule 1: Trying to code without epics/stories
88
96
  if [[ "$WANTS_CODE" == "true" || "$WANTS_DEV" == "true" ]] && [[ "$CURRENT_PHASE" != "dev" && "$CURRENT_PHASE" != "review" ]]; then
89
97
  if [[ "$HAS_EPICS" == "false" ]]; then
@@ -46,6 +46,10 @@ export function references(c) {
46
46
  path: `${a}/aped-r/references/review-criteria.md`,
47
47
  content: REVIEW_CRITERIA,
48
48
  },
49
+ {
50
+ path: `${a}/aped-ux/references/ux-patterns.md`,
51
+ content: UX_PATTERNS,
52
+ },
49
53
  ];
50
54
  }
51
55
 
@@ -547,3 +551,84 @@ web_app,"website,webapp,browser,SPA,PWA","SPA or MPA?;Browser support?;SEO neede
547
551
  mobile_app,"iOS,Android,app,mobile,iPhone,iPad","Native or cross-platform?;Offline needed?;Push notifications?;Device features?;Store compliance?","platform_reqs;device_permissions;offline_mode;push_strategy;store_compliance","desktop_features;cli_commands","app store guidelines;platform requirements","Gesture innovation;AR/VR features"
548
552
  saas_b2b,"SaaS,B2B,platform,dashboard,teams,enterprise","Multi-tenant?;Permission model?;Subscription tiers?;Integrations?;Compliance?","tenant_model;rbac_matrix;subscription_tiers;integration_list;compliance_reqs","cli_interface;mobile_first","compliance requirements;integration guides","Workflow automation;AI agents"
549
553
  cli_tool,"CLI,command,terminal,bash,script","Interactive or scriptable?;Output formats?;Config method?;Shell completion?","command_structure;output_formats;config_schema;scripting_support","visual_design;ux_principles;touch_interactions","CLI design patterns;shell integration","Natural language CLI;AI commands"`;
554
+
555
+ const UX_PATTERNS = `# UX Screen Patterns Catalog
556
+
557
+ ## Screen Types
558
+
559
+ ### Form Screens
560
+ - **Login/Register**: email + password, social auth buttons, forgot link
561
+ - **Settings**: grouped sections, save/cancel, inline validation
562
+ - **Wizard/Multi-step**: progress indicator, back/next, step validation
563
+ - **Search + Filters**: search bar, filter sidebar/chips, results list
564
+
565
+ ### List Screens
566
+ - **Data Table**: sortable headers, row actions, pagination, bulk select
567
+ - **Card Grid**: image + title + meta, responsive columns, load more
568
+ - **Feed/Timeline**: chronological, infinite scroll, activity items
569
+
570
+ ### Detail Screens
571
+ - **Profile/Entity**: header (avatar, name, stats), tabbed content, actions
572
+ - **Article/Content**: title, meta, body, sidebar, related items
573
+
574
+ ### Dashboard Screens
575
+ - **Analytics**: stat cards, charts, date range picker, export
576
+ - **Admin**: sidebar nav, content area, notification badge
577
+
578
+ ### Utility Screens
579
+ - **Empty State**: illustration, message, CTA button
580
+ - **Error Page**: error code, message, back/home links
581
+ - **Loading**: skeleton screens, progress bar, spinner
582
+
583
+ ## Layout Patterns
584
+
585
+ ### Navigation
586
+ - **Top Nav**: logo left, nav center/right, avatar far right
587
+ - **Sidebar**: collapsible, icons + labels, active indicator, mobile hamburger
588
+ - **Tab Bar**: bottom tabs (mobile), top tabs (desktop), badge counts
589
+ - **Breadcrumb**: path hierarchy, current page non-linked
590
+
591
+ ### Content Layout
592
+ - **Sidebar + Content**: 240-280px sidebar, fluid content, responsive collapse
593
+ - **Full Width**: max-width container (1200-1440px), centered
594
+ - **Split View**: list left, detail right (email pattern), resizable
595
+ - **Grid**: 12-column, responsive breakpoints (sm/md/lg/xl)
596
+
597
+ ## Interaction Patterns
598
+
599
+ ### Forms
600
+ - **Inline Validation**: validate on blur, show error below field, green checkmark on valid
601
+ - **Progressive Disclosure**: show fields based on previous answers
602
+ - **Autosave**: debounced save, "Saved" indicator, conflict resolution
603
+
604
+ ### Data
605
+ - **Optimistic Updates**: update UI immediately, revert on error
606
+ - **Pagination**: page numbers for known total, infinite scroll for feeds
607
+ - **Search**: debounced input (300ms), loading indicator, clear button
608
+
609
+ ### Feedback
610
+ - **Toast/Snackbar**: bottom-right, auto-dismiss (5s), action button, stacking
611
+ - **Modal/Dialog**: overlay, focus trap, escape to close, confirm/cancel
612
+ - **Inline Alerts**: contextual, dismissible, icon + message + action
613
+
614
+ ## Responsive Breakpoints
615
+
616
+ | Name | Width | Typical |
617
+ |------|-------|---------|
618
+ | sm | < 640px | Mobile portrait |
619
+ | md | 640-1024px | Tablet / mobile landscape |
620
+ | lg | 1024-1440px | Desktop |
621
+ | xl | > 1440px | Large desktop |
622
+
623
+ ## Accessibility Checklist
624
+
625
+ - [ ] All interactive elements keyboard-navigable (Tab, Enter, Escape)
626
+ - [ ] Focus indicator visible on all focusable elements
627
+ - [ ] ARIA labels on icon-only buttons
628
+ - [ ] Color contrast ratio ≥ 4.5:1 (text), ≥ 3:1 (large text)
629
+ - [ ] Form fields have associated labels
630
+ - [ ] Error messages linked to fields via aria-describedby
631
+ - [ ] Skip navigation link for screen readers
632
+ - [ ] Alt text on meaningful images
633
+ - [ ] Touch targets ≥ 44x44px on mobile
634
+ `;