adi_dev_workflow 1.1.1 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/index.js +8 -8
- package/frameworks/agents/qa-staff-engineer.md +311 -311
- package/frameworks/agents/qa-validation-expert.md +458 -458
- package/frameworks/agents/tech-review-conformance.md +200 -200
- package/frameworks/commands/ministack/README.md +2 -0
- package/frameworks/commands/ministack/code-review.md +2 -0
- package/frameworks/commands/ministack/generate-intent.md +2 -0
- package/frameworks/commands/ministack/generate-scope.md +2 -0
- package/frameworks/commands/ministack/generate-tasks.md +2 -0
- package/frameworks/commands/ministack/generate-tech-direction.md +2 -0
- package/frameworks/commands/ministack/run-ministack-tasks.md +3 -0
- package/frameworks/commands/ministack/run-ministack-withlinear.md +2 -0
- package/frameworks/commands/ministack/status.md +2 -0
- package/frameworks/commands/sdd/code-review.md +2 -0
- package/frameworks/commands/sdd/generate-prd.md +2 -0
- package/frameworks/commands/sdd/generate-task-plan.md +2 -0
- package/frameworks/commands/sdd/generate-tech-direction.md +2 -0
- package/frameworks/commands/sdd/generate-tech-spec.md +2 -0
- package/frameworks/commands/sdd/generate-tests.md +2 -0
- package/frameworks/commands/sdd/run_tasks.md +3 -0
- package/frameworks/commands/sdd/run_tasks_withlinear.md +2 -0
- package/frameworks/commands/sdd/status.md +2 -0
- package/frameworks/commands/sdd/validate-sdd.md +2 -0
- package/frameworks/commands/sync-tasks-to-linear.md +2 -0
- package/frameworks/commands/taskcard/generate-taskcard.md +2 -0
- package/frameworks/commands/taskcard/run-taskcard.md +2 -0
- package/frameworks/config/ai-framework-config.yaml +112 -0
- package/frameworks/skills/ministack-intent-expert/SKILL.md +2 -0
- package/frameworks/skills/ministack-scope-expert/SKILL.md +4 -0
- package/frameworks/skills/sdd-prd-expert/SKILL.md +2 -0
- package/frameworks/skills/sdd-task-plan-expert/SKILL.md +2 -0
- package/frameworks/skills/taskcard-expert/SKILL.md +4 -0
- package/package.json +28 -28
- package/src/cli.js +121 -121
- package/src/installer.js +155 -136
- package/src/transformer.js +86 -86
- package/frameworks/skills/ministack-tasks-expert/SKILL.md +0 -204
- package/frameworks/skills/ministack-tasks-expert/templates/task_plan_template.md +0 -78
- package/frameworks/skills/ministack-tasks-expert/templates/task_template.md +0 -103
- package/frameworks/skills/ministack-tech-direction-expert/SKILL.md +0 -230
- package/frameworks/skills/ministack-tech-direction-expert/evals/evals.json +0 -1
- package/frameworks/skills/ministack-tech-direction-expert/templates/tech_direction-template.md +0 -17
- package/frameworks/skills/prompt-engineer-expert/SKILL.md +0 -232
- package/frameworks/skills/prompt-engineer-expert/templates/prompt_template.md +0 -139
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.json +0 -99
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.md +0 -64
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/eval_metadata.json +0 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/response.md +0 -134
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/transcript.md +0 -68
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/timing.json +0 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/response.md +0 -525
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/transcript.md +0 -30
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/timing.json +0 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/eval_metadata.json +0 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/response.md +0 -1126
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/transcript.md +0 -131
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/timing.json +0 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/response.md +0 -452
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/transcript.md +0 -78
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/timing.json +0 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/eval_metadata.json +0 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/response.md +0 -101
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/transcript.md +0 -133
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/timing.json +0 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/response.md +0 -248
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/transcript.md +0 -49
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/timing.json +0 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/review.html +0 -1325
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.json +0 -94
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.md +0 -67
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/eval_metadata.json +0 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/response.md +0 -117
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/transcript.md +0 -91
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/timing.json +0 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/response.md +0 -694
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/transcript.md +0 -45
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/timing.json +0 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/eval_metadata.json +0 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/response.md +0 -1087
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/transcript.md +0 -124
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/timing.json +0 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/response.md +0 -458
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/transcript.md +0 -84
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/timing.json +0 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/eval_metadata.json +0 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/response.md +0 -70
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/transcript.md +0 -148
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/timing.json +0 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/grading.json +0 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/response.md +0 -249
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/transcript.md +0 -80
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/timing.json +0 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/review.html +0 -1325
- package/frameworks/skills/sdd-tech-direction-expert/SKILL.md +0 -235
- package/frameworks/skills/sdd-tech-direction-expert/evals/evals.json +0 -1
- package/frameworks/skills/sdd-tech-direction-expert/templates/tech_direction-template.md +0 -23
- package/frameworks/skills/sdd-tech-spec-expert/SKILL.md +0 -317
- package/frameworks/skills/sdd-tech-spec-expert/evals/evals.json +0 -199
- package/frameworks/skills/sdd-tech-spec-expert/templates/spec_tech_template.md +0 -290
- package/frameworks/skills/sdd-tech-spec-expert/templates/tech_direction-template.md +0 -23
|
@@ -3,6 +3,8 @@ description: "Executa uma TaskCard com gates QA + Tech Review. Params: <caminho_
|
|
|
3
3
|
argument-hint: "<caminho da taskcard> [agente opcional ex: go-expert]"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
> **Paths**: Leia `.claude/config/ai-framework-config.yaml` secao `taskcard` antes de salvar artefatos. Os paths abaixo sao exemplos — o path real vem do config.
|
|
7
|
+
|
|
6
8
|
Voce e um **Executor de TaskCard com Validacao**. Execute com precisao, sem desvios ou reinterpretacao.
|
|
7
9
|
|
|
8
10
|
Carregue a skill **taskcard-expert** para obter o framework completo (template, regras, guardrails, convencoes).
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# ============================================================================
|
|
2
|
+
# AI Framework Config — Configuracao centralizada de paths
|
|
3
|
+
# ============================================================================
|
|
4
|
+
#
|
|
5
|
+
# Este arquivo define ONDE cada artefato de cada framework deve ser gravado.
|
|
6
|
+
# Todos os commands e skills DEVEM ler este arquivo antes de salvar qualquer
|
|
7
|
+
# artefato, usando os paths aqui definidos.
|
|
8
|
+
#
|
|
9
|
+
# Variaveis dinamicas:
|
|
10
|
+
# {feature} — nome da feature em kebab-case (ex: auth-oauth2)
|
|
11
|
+
# {version} — versao do artefato (ex: v1, v2)
|
|
12
|
+
#
|
|
13
|
+
# Para alterar a estrutura de pastas, edite APENAS este arquivo.
|
|
14
|
+
# ============================================================================
|
|
15
|
+
|
|
16
|
+
# --------------------------------------------------------------------------
|
|
17
|
+
# SDD (Software Design Document)
|
|
18
|
+
# Pipeline: PRD → Tech Direction → SPEC_TECH → Task Plan + Tasks → Execution
|
|
19
|
+
# --------------------------------------------------------------------------
|
|
20
|
+
sdd:
|
|
21
|
+
# Artefatos de produto (O QUE / POR QUE)
|
|
22
|
+
prd:
|
|
23
|
+
path: "docs/specs/{feature}/{version}/prd.md"
|
|
24
|
+
generated_by: "sdd:generate-prd"
|
|
25
|
+
|
|
26
|
+
tech_direction:
|
|
27
|
+
path: "docs/specs/{feature}/{version}/tech_direction.md"
|
|
28
|
+
generated_by: "sdd:generate-tech-direction"
|
|
29
|
+
|
|
30
|
+
state:
|
|
31
|
+
path: "docs/specs/{feature}/{version}/sdd_state.yaml"
|
|
32
|
+
generated_by: "sdd:generate-prd"
|
|
33
|
+
updated_by: "all sdd commands"
|
|
34
|
+
|
|
35
|
+
# Artefatos tecnicos (COMO)
|
|
36
|
+
spec_tech:
|
|
37
|
+
path: "docs/specs/{feature}/{version}/spec_tech.md"
|
|
38
|
+
generated_by: "sdd:generate-tech-spec"
|
|
39
|
+
|
|
40
|
+
validation:
|
|
41
|
+
path: "docs/specs/{feature}/{version}/validation_report.md"
|
|
42
|
+
generated_by: "sdd:validate-sdd"
|
|
43
|
+
|
|
44
|
+
task_plan:
|
|
45
|
+
path: "docs/specs/{feature}/{version}/task_plan.md"
|
|
46
|
+
generated_by: "sdd:generate-task-plan"
|
|
47
|
+
|
|
48
|
+
tasks:
|
|
49
|
+
dir: "docs/specs/{feature}/{version}/tasks/"
|
|
50
|
+
pattern: "T{n}.md"
|
|
51
|
+
generated_by: "sdd:generate-task-plan"
|
|
52
|
+
|
|
53
|
+
code_review:
|
|
54
|
+
dir: "docs/specs/{feature}/{version}/code_review/"
|
|
55
|
+
generated_by: "sdd:code-review"
|
|
56
|
+
|
|
57
|
+
tests:
|
|
58
|
+
generated_by: "sdd:generate-tests"
|
|
59
|
+
note: "Gera secoes dentro do spec_tech.md ou tasks/TN.md, nao cria arquivo separado"
|
|
60
|
+
|
|
61
|
+
# --------------------------------------------------------------------------
|
|
62
|
+
# miniStack
|
|
63
|
+
# Pipeline: INTENT → Tech Direction → SCOPE → Task Plan + Tasks → Execution
|
|
64
|
+
# --------------------------------------------------------------------------
|
|
65
|
+
ministack:
|
|
66
|
+
intent:
|
|
67
|
+
path: "docs/specs/{feature}/{version}/intent.md"
|
|
68
|
+
generated_by: "ministack:generate-intent"
|
|
69
|
+
|
|
70
|
+
tech_direction:
|
|
71
|
+
path: "docs/specs/{feature}/{version}/tech_direction.md"
|
|
72
|
+
generated_by: "ministack:generate-tech-direction"
|
|
73
|
+
|
|
74
|
+
state:
|
|
75
|
+
path: "docs/specs/{feature}/{version}/ministack_state.yaml"
|
|
76
|
+
generated_by: "ministack:generate-intent"
|
|
77
|
+
updated_by: "all ministack commands"
|
|
78
|
+
|
|
79
|
+
scope:
|
|
80
|
+
path: "docs/specs/{feature}/{version}/scope.md"
|
|
81
|
+
generated_by: "ministack:generate-scope"
|
|
82
|
+
|
|
83
|
+
task_plan:
|
|
84
|
+
path: "docs/specs/{feature}/{version}/task_plan.md"
|
|
85
|
+
generated_by: "ministack:generate-tasks"
|
|
86
|
+
|
|
87
|
+
tasks:
|
|
88
|
+
dir: "docs/specs/{feature}/{version}/tasks/"
|
|
89
|
+
pattern: "T{n}.md"
|
|
90
|
+
generated_by: "ministack:generate-tasks"
|
|
91
|
+
|
|
92
|
+
# --------------------------------------------------------------------------
|
|
93
|
+
# TaskCard
|
|
94
|
+
# Pipeline: TaskCard generation → Execution (QA + Tech Review)
|
|
95
|
+
# --------------------------------------------------------------------------
|
|
96
|
+
taskcard:
|
|
97
|
+
task_plan:
|
|
98
|
+
path: "docs/specs/{feature}/{version}/task-plan.md"
|
|
99
|
+
generated_by: "taskcard:generate-taskcard"
|
|
100
|
+
|
|
101
|
+
tasks:
|
|
102
|
+
dir: "docs/specs/{feature}/{version}/"
|
|
103
|
+
pattern: "task-{nn}-{slug}.md"
|
|
104
|
+
generated_by: "taskcard:generate-taskcard"
|
|
105
|
+
|
|
106
|
+
# --------------------------------------------------------------------------
|
|
107
|
+
# Compartilhado (cross-framework)
|
|
108
|
+
# --------------------------------------------------------------------------
|
|
109
|
+
shared:
|
|
110
|
+
linear_sync:
|
|
111
|
+
path: "docs/specs/{feature}/{version}/linear-sync.json"
|
|
112
|
+
generated_by: "sync-tasks-to-linear"
|
|
@@ -8,6 +8,8 @@ Voce e um **Product Owner / PM experiente** com vies de produto e clareza estrat
|
|
|
8
8
|
|
|
9
9
|
Você domina completamente o framework miniStack e seu foco é **EXCLUSIVAMENTE** na etapa INTENT — definindo O QUE precisa ser feito e POR QUÊ, sem nunca entrar em detalhes técnicos de implementação.
|
|
10
10
|
|
|
11
|
+
> **Paths**: Leia `.claude/config/ai-framework-config.yaml` secao `ministack` antes de salvar artefatos. Os paths abaixo sao exemplos — o path real vem do config.
|
|
12
|
+
|
|
11
13
|
---
|
|
12
14
|
|
|
13
15
|
# Regra de Acentuação
|
|
@@ -6,8 +6,12 @@ argument-hint: [INTENT aprovada + detalhes tecnicos]
|
|
|
6
6
|
|
|
7
7
|
Voce e um **Arquiteto de Software Senior** que transforma INTENTs em especificacoes tecnicas concretas.
|
|
8
8
|
|
|
9
|
+
> **Paths**: Leia `.claude/config/ai-framework-config.yaml` secao `ministack` antes de salvar artefatos. Os paths abaixo sao exemplos — o path real vem do config.
|
|
10
|
+
|
|
9
11
|
Você domina completamente o framework miniStack e seu foco é **EXCLUSIVAMENTE** na etapa SCOPE — definindo COMO a feature será implementada, com limites claros do que está dentro e fora do escopo.
|
|
10
12
|
|
|
13
|
+
> **Paths**: Leia `.claude/config/ai-framework-config.yaml` secao `ministack` antes de salvar artefatos. Os paths abaixo sao exemplos — o path real vem do config.
|
|
14
|
+
|
|
11
15
|
---
|
|
12
16
|
|
|
13
17
|
# Regra de Acentuação
|
|
@@ -23,6 +23,8 @@ Foco: **O QUÊ** e **POR QUÊ**. Questões de COMO → registrar como Premissa/R
|
|
|
23
23
|
|
|
24
24
|
Estilo: Objetivo. Estruturado. Sem redundância.
|
|
25
25
|
|
|
26
|
+
> **Paths**: Leia `.claude/config/ai-framework-config.yaml` secao `sdd` antes de salvar artefatos. Os paths abaixo sao exemplos — o path real vem do config.
|
|
27
|
+
|
|
26
28
|
---
|
|
27
29
|
|
|
28
30
|
# Regra de Acentuação
|
|
@@ -14,6 +14,8 @@ Sua missão é transformar um SPEC_TECH aprovado em:
|
|
|
14
14
|
|
|
15
15
|
Seu foco é **EXCLUSIVAMENTE** no **COMO executar** — decomposição técnica de engenharia. Você transforma especificações técnicas em planos de execução granulares, sem ambiguidade, prontos para serem executados por desenvolvedores ou agentes de IA.
|
|
16
16
|
|
|
17
|
+
> **Paths**: Leia `.claude/config/ai-framework-config.yaml` secao `sdd` antes de salvar artefatos. Os paths abaixo sao exemplos — o path real vem do config.
|
|
18
|
+
|
|
17
19
|
---
|
|
18
20
|
|
|
19
21
|
# Regra de Acentuação
|
|
@@ -6,8 +6,12 @@ argument-hint: [pergunta, contexto ou caminho da taskcard]
|
|
|
6
6
|
|
|
7
7
|
Voce e um **Especialista no Framework TaskCard** — o sistema de planejamento e execucao de tasks deste projeto.
|
|
8
8
|
|
|
9
|
+
> **Paths**: Leia `.claude/config/ai-framework-config.yaml` secao `taskcard` antes de salvar artefatos. Os paths abaixo sao exemplos — o path real vem do config.
|
|
10
|
+
|
|
9
11
|
Você domina completamente o framework: template, regras, guardrails, convenções de nomenclatura, estrutura de diretórios e fluxos de geração/execução.
|
|
10
12
|
|
|
13
|
+
> **Paths**: Leia `.claude/config/ai-framework-config.yaml` secao `taskcard` antes de salvar artefatos. Os paths abaixo sao exemplos — o path real vem do config.
|
|
14
|
+
|
|
11
15
|
---
|
|
12
16
|
|
|
13
17
|
# Regra de Acentuação
|
package/package.json
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "adi_dev_workflow",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Install SDD, miniStack and TaskCard development frameworks for Claude Code and Cursor",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"bin": {
|
|
7
|
-
"adi_dev_workflow": "
|
|
8
|
-
},
|
|
9
|
-
"files": [
|
|
10
|
-
"bin/",
|
|
11
|
-
"src/",
|
|
12
|
-
"frameworks/"
|
|
13
|
-
],
|
|
14
|
-
"keywords": [
|
|
15
|
-
"claude-code",
|
|
16
|
-
"cursor",
|
|
17
|
-
"sdd",
|
|
18
|
-
"ministack",
|
|
19
|
-
"taskcard",
|
|
20
|
-
"dev-workflow",
|
|
21
|
-
"ai-frameworks"
|
|
22
|
-
],
|
|
23
|
-
"author": "",
|
|
24
|
-
"license": "MIT",
|
|
25
|
-
"dependencies": {
|
|
26
|
-
"prompts": "^2.4.2"
|
|
27
|
-
}
|
|
28
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "adi_dev_workflow",
|
|
3
|
+
"version": "1.2.0",
|
|
4
|
+
"description": "Install SDD, miniStack and TaskCard development frameworks for Claude Code and Cursor",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"adi_dev_workflow": "bin/index.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"bin/",
|
|
11
|
+
"src/",
|
|
12
|
+
"frameworks/"
|
|
13
|
+
],
|
|
14
|
+
"keywords": [
|
|
15
|
+
"claude-code",
|
|
16
|
+
"cursor",
|
|
17
|
+
"sdd",
|
|
18
|
+
"ministack",
|
|
19
|
+
"taskcard",
|
|
20
|
+
"dev-workflow",
|
|
21
|
+
"ai-frameworks"
|
|
22
|
+
],
|
|
23
|
+
"author": "",
|
|
24
|
+
"license": "MIT",
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"prompts": "^2.4.2"
|
|
27
|
+
}
|
|
28
|
+
}
|
package/src/cli.js
CHANGED
|
@@ -1,121 +1,121 @@
|
|
|
1
|
-
import prompts from 'prompts';
|
|
2
|
-
import { install } from './installer.js';
|
|
3
|
-
|
|
4
|
-
const BANNER = `
|
|
5
|
-
╔══════════════════════════════════════╗
|
|
6
|
-
║ adi_dev_workflow v1.0 ║
|
|
7
|
-
║ SDD · miniStack · TaskCard ║
|
|
8
|
-
╚══════════════════════════════════════╝
|
|
9
|
-
`;
|
|
10
|
-
|
|
11
|
-
function parseArgs(argv) {
|
|
12
|
-
const args = { ide: null, all: false };
|
|
13
|
-
for (let i = 0; i < argv.length; i++) {
|
|
14
|
-
if (argv[i] === '--all') args.all = true;
|
|
15
|
-
if (argv[i] === '--ide' && argv[i + 1]) {
|
|
16
|
-
args.ide = argv[++i];
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
return args;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export async function run(argv) {
|
|
23
|
-
console.log(BANNER);
|
|
24
|
-
|
|
25
|
-
const args = parseArgs(argv);
|
|
26
|
-
let target = args.ide;
|
|
27
|
-
let frameworks;
|
|
28
|
-
|
|
29
|
-
// IDE selection
|
|
30
|
-
if (!target || !['claude', 'cursor'].includes(target)) {
|
|
31
|
-
const res = await prompts({
|
|
32
|
-
type: 'select',
|
|
33
|
-
name: 'target',
|
|
34
|
-
message: 'Which IDE are you using?',
|
|
35
|
-
choices: [
|
|
36
|
-
{ title: 'Claude Code (.claude/)', value: 'claude' },
|
|
37
|
-
{ title: 'Cursor (.cursor/)', value: 'cursor' },
|
|
38
|
-
],
|
|
39
|
-
});
|
|
40
|
-
if (!res.target) {
|
|
41
|
-
console.log('Cancelled.');
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
target = res.target;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
// Framework selection
|
|
48
|
-
if (args.all) {
|
|
49
|
-
frameworks = ['sdd', 'ministack', 'taskcard', 'shared'];
|
|
50
|
-
} else {
|
|
51
|
-
const res = await prompts({
|
|
52
|
-
type: 'multiselect',
|
|
53
|
-
name: 'frameworks',
|
|
54
|
-
message: 'Which frameworks do you want to install?',
|
|
55
|
-
choices: [
|
|
56
|
-
{
|
|
57
|
-
title: 'SDD - Specification-Driven Development',
|
|
58
|
-
description: 'PRD -> Spec Tech -> Task Plan -> Code',
|
|
59
|
-
value: 'sdd',
|
|
60
|
-
selected: true,
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
title: 'miniStack - Minimal Feature Stack',
|
|
64
|
-
description: 'Intent -> Scope -> Tasks -> Code',
|
|
65
|
-
value: 'ministack',
|
|
66
|
-
selected: true,
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
title: 'TaskCard - Atomic Work Units',
|
|
70
|
-
description: 'Description -> Card -> Code',
|
|
71
|
-
value: 'taskcard',
|
|
72
|
-
selected: true,
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
title: 'Shared tools',
|
|
76
|
-
description: 'Prompt generator, Linear sync',
|
|
77
|
-
value: 'shared',
|
|
78
|
-
selected: true,
|
|
79
|
-
},
|
|
80
|
-
],
|
|
81
|
-
hint: '- Space to toggle. Return to submit',
|
|
82
|
-
});
|
|
83
|
-
if (!res.frameworks || res.frameworks.length === 0) {
|
|
84
|
-
console.log('No frameworks selected. Cancelled.');
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
frameworks = res.frameworks;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
const cwd = process.cwd();
|
|
91
|
-
const ideLabel = target === 'claude' ? '.claude/' : '.cursor/';
|
|
92
|
-
|
|
93
|
-
console.log(`\nInstalling to ${ideLabel} ...\n`);
|
|
94
|
-
|
|
95
|
-
const summary = await install({ cwd, target, frameworks });
|
|
96
|
-
|
|
97
|
-
console.log(` Done!\n`);
|
|
98
|
-
console.log(` ${summary.skills} skills + ${summary.commands} commands + ${summary.templates} templates installed.\n`);
|
|
99
|
-
|
|
100
|
-
// Usage hints
|
|
101
|
-
const hints = [];
|
|
102
|
-
if (frameworks.includes('sdd')) {
|
|
103
|
-
hints.push(' /sdd:generate-prd Start a new feature with SDD');
|
|
104
|
-
}
|
|
105
|
-
if (frameworks.includes('ministack')) {
|
|
106
|
-
hints.push(' /ministack:generate-intent Start with miniStack');
|
|
107
|
-
}
|
|
108
|
-
if (frameworks.includes('taskcard')) {
|
|
109
|
-
hints.push(' /taskcard:generate-taskcard Create a task card');
|
|
110
|
-
}
|
|
111
|
-
if (frameworks.includes('shared')) {
|
|
112
|
-
hints.push(' /generate-prompt Generate an optimized prompt');
|
|
113
|
-
hints.push(' /sync-tasks-to-linear Sync tasks to Linear');
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
if (hints.length > 0) {
|
|
117
|
-
console.log(' Usage:\n');
|
|
118
|
-
for (const h of hints) console.log(h);
|
|
119
|
-
console.log('');
|
|
120
|
-
}
|
|
121
|
-
}
|
|
1
|
+
import prompts from 'prompts';
|
|
2
|
+
import { install } from './installer.js';
|
|
3
|
+
|
|
4
|
+
const BANNER = `
|
|
5
|
+
╔══════════════════════════════════════╗
|
|
6
|
+
║ adi_dev_workflow v1.0 ║
|
|
7
|
+
║ SDD · miniStack · TaskCard ║
|
|
8
|
+
╚══════════════════════════════════════╝
|
|
9
|
+
`;
|
|
10
|
+
|
|
11
|
+
function parseArgs(argv) {
|
|
12
|
+
const args = { ide: null, all: false };
|
|
13
|
+
for (let i = 0; i < argv.length; i++) {
|
|
14
|
+
if (argv[i] === '--all') args.all = true;
|
|
15
|
+
if (argv[i] === '--ide' && argv[i + 1]) {
|
|
16
|
+
args.ide = argv[++i];
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return args;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export async function run(argv) {
|
|
23
|
+
console.log(BANNER);
|
|
24
|
+
|
|
25
|
+
const args = parseArgs(argv);
|
|
26
|
+
let target = args.ide;
|
|
27
|
+
let frameworks;
|
|
28
|
+
|
|
29
|
+
// IDE selection
|
|
30
|
+
if (!target || !['claude', 'cursor'].includes(target)) {
|
|
31
|
+
const res = await prompts({
|
|
32
|
+
type: 'select',
|
|
33
|
+
name: 'target',
|
|
34
|
+
message: 'Which IDE are you using?',
|
|
35
|
+
choices: [
|
|
36
|
+
{ title: 'Claude Code (.claude/)', value: 'claude' },
|
|
37
|
+
{ title: 'Cursor (.cursor/)', value: 'cursor' },
|
|
38
|
+
],
|
|
39
|
+
});
|
|
40
|
+
if (!res.target) {
|
|
41
|
+
console.log('Cancelled.');
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
target = res.target;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Framework selection
|
|
48
|
+
if (args.all) {
|
|
49
|
+
frameworks = ['sdd', 'ministack', 'taskcard', 'shared'];
|
|
50
|
+
} else {
|
|
51
|
+
const res = await prompts({
|
|
52
|
+
type: 'multiselect',
|
|
53
|
+
name: 'frameworks',
|
|
54
|
+
message: 'Which frameworks do you want to install?',
|
|
55
|
+
choices: [
|
|
56
|
+
{
|
|
57
|
+
title: 'SDD - Specification-Driven Development',
|
|
58
|
+
description: 'PRD -> Spec Tech -> Task Plan -> Code',
|
|
59
|
+
value: 'sdd',
|
|
60
|
+
selected: true,
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
title: 'miniStack - Minimal Feature Stack',
|
|
64
|
+
description: 'Intent -> Scope -> Tasks -> Code',
|
|
65
|
+
value: 'ministack',
|
|
66
|
+
selected: true,
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
title: 'TaskCard - Atomic Work Units',
|
|
70
|
+
description: 'Description -> Card -> Code',
|
|
71
|
+
value: 'taskcard',
|
|
72
|
+
selected: true,
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
title: 'Shared tools',
|
|
76
|
+
description: 'Prompt generator, Linear sync',
|
|
77
|
+
value: 'shared',
|
|
78
|
+
selected: true,
|
|
79
|
+
},
|
|
80
|
+
],
|
|
81
|
+
hint: '- Space to toggle. Return to submit',
|
|
82
|
+
});
|
|
83
|
+
if (!res.frameworks || res.frameworks.length === 0) {
|
|
84
|
+
console.log('No frameworks selected. Cancelled.');
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
frameworks = res.frameworks;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
const cwd = process.cwd();
|
|
91
|
+
const ideLabel = target === 'claude' ? '.claude/' : '.cursor/';
|
|
92
|
+
|
|
93
|
+
console.log(`\nInstalling to ${ideLabel} ...\n`);
|
|
94
|
+
|
|
95
|
+
const summary = await install({ cwd, target, frameworks });
|
|
96
|
+
|
|
97
|
+
console.log(` Done!\n`);
|
|
98
|
+
console.log(` ${summary.skills} skills + ${summary.commands} commands + ${summary.templates} templates + ${summary.agents} agents + ${summary.config} config installed.\n`);
|
|
99
|
+
|
|
100
|
+
// Usage hints
|
|
101
|
+
const hints = [];
|
|
102
|
+
if (frameworks.includes('sdd')) {
|
|
103
|
+
hints.push(' /sdd:generate-prd Start a new feature with SDD');
|
|
104
|
+
}
|
|
105
|
+
if (frameworks.includes('ministack')) {
|
|
106
|
+
hints.push(' /ministack:generate-intent Start with miniStack');
|
|
107
|
+
}
|
|
108
|
+
if (frameworks.includes('taskcard')) {
|
|
109
|
+
hints.push(' /taskcard:generate-taskcard Create a task card');
|
|
110
|
+
}
|
|
111
|
+
if (frameworks.includes('shared')) {
|
|
112
|
+
hints.push(' /generate-prompt Generate an optimized prompt');
|
|
113
|
+
hints.push(' /sync-tasks-to-linear Sync tasks to Linear');
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
if (hints.length > 0) {
|
|
117
|
+
console.log(' Usage:\n');
|
|
118
|
+
for (const h of hints) console.log(h);
|
|
119
|
+
console.log('');
|
|
120
|
+
}
|
|
121
|
+
}
|