@shakecodeslikecray/npc-cli 0.5.4 → 0.5.5
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAYD,wBAAsB,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAYD,wBAAsB,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA+P3D"}
|
package/dist/commands/init.js
CHANGED
|
@@ -70,10 +70,127 @@ export async function init(opts) {
|
|
|
70
70
|
const match = repos.find((r) => r.id === repoId);
|
|
71
71
|
repoName = match?.name ?? repoId;
|
|
72
72
|
}
|
|
73
|
-
// 5. Write .npcrc.json
|
|
73
|
+
// 5. Write .npcrc.json (machine-readable config for CLI)
|
|
74
74
|
const npcrc = { project_id: projectId, repo_id: repoId, repo_name: repoName };
|
|
75
75
|
writeFileSync(".npcrc.json", JSON.stringify(npcrc, null, 2) + "\n");
|
|
76
76
|
console.log("\n[ok] .npcrc.json written");
|
|
77
|
+
// 5b. Create or append to AGENTS.md (AI agent discovery)
|
|
78
|
+
const npcSection = `
|
|
79
|
+
## NPC — Project Orchestration
|
|
80
|
+
|
|
81
|
+
This repo is managed by [NPC](https://npc-api.fordelstudios.com), an agent-first project orchestration system.
|
|
82
|
+
|
|
83
|
+
| Key | Value |
|
|
84
|
+
|-----|-------|
|
|
85
|
+
| Project | ${projectName} |
|
|
86
|
+
| Repo | ${repoName} |
|
|
87
|
+
| Repo ID | \`${repoId}\` |
|
|
88
|
+
|
|
89
|
+
### Setup
|
|
90
|
+
|
|
91
|
+
\`\`\`bash
|
|
92
|
+
npm i -g @shakecodeslikecray/npc-cli
|
|
93
|
+
npc auth login
|
|
94
|
+
npc init
|
|
95
|
+
\`\`\`
|
|
96
|
+
|
|
97
|
+
### Task Workflow
|
|
98
|
+
|
|
99
|
+
All work must be tracked. Before coding:
|
|
100
|
+
|
|
101
|
+
1. \`npc pull\` — get next unblocked task (returns L1 module with full tree)
|
|
102
|
+
2. \`npc start <task-id>\` — claim a leaf task (L3/L4)
|
|
103
|
+
3. \`npc context <task-id>\` — get full context (ancestors, QA flows, refs, blockers)
|
|
104
|
+
|
|
105
|
+
After coding:
|
|
106
|
+
|
|
107
|
+
4. \`npc signal health <task-id>\` — verify quality gates (tests, lint, build)
|
|
108
|
+
5. \`npc complete <task-id> -s "summary" -h <hours>\` — mark done with telemetry
|
|
109
|
+
|
|
110
|
+
### Rules
|
|
111
|
+
|
|
112
|
+
- Never commit without an active task (pre-commit hook enforces this)
|
|
113
|
+
- Report test/lint/build results as signals automatically
|
|
114
|
+
- Extra work beyond task scope: use \`--extra-work\` flag on complete
|
|
115
|
+
- If blocked: \`npc transition <task-id> blocked\`
|
|
116
|
+
- Check assignments: \`npc tasks\`
|
|
117
|
+
|
|
118
|
+
### CLI Reference
|
|
119
|
+
|
|
120
|
+
\`\`\`bash
|
|
121
|
+
# Task lifecycle
|
|
122
|
+
npc pull # Next unblocked L1 module
|
|
123
|
+
npc start <id> # Claim task
|
|
124
|
+
npc complete <id> -s "..." -h N # Mark done
|
|
125
|
+
npc release <id> # Unclaim
|
|
126
|
+
npc transition <id> <state> # Any valid state change
|
|
127
|
+
npc tasks # My assignments
|
|
128
|
+
|
|
129
|
+
# Context
|
|
130
|
+
npc context <id> # Full context with QA flows
|
|
131
|
+
npc items list <repo-id> # All work items
|
|
132
|
+
npc items children <repo-id> <id> # Direct children
|
|
133
|
+
npc items descendants <repo-id> <id> # Full subtree
|
|
134
|
+
|
|
135
|
+
# Quality signals
|
|
136
|
+
npc signal create <id> -c quality -t tests_passed -v '{"passed":true}'
|
|
137
|
+
npc signal health <id> # Check signal completeness
|
|
138
|
+
|
|
139
|
+
# QA
|
|
140
|
+
npc qa flows <repo-id> # User flows (1 per L1)
|
|
141
|
+
npc qa use-cases <repo-id> <flow-id> # Use cases in a flow
|
|
142
|
+
npc test-cases list <id> # Test cases for an item
|
|
143
|
+
npc test-cases pass <id> <case-id> # Mark passed
|
|
144
|
+
npc test-cases fail <id> <case-id> # Mark failed (auto-creates bug)
|
|
145
|
+
|
|
146
|
+
# Change requests
|
|
147
|
+
npc cr list # List CRs
|
|
148
|
+
npc cr create -t "Title" --type free # Create CR
|
|
149
|
+
npc cr get <cr-id> # CR details
|
|
150
|
+
npc cr update <cr-id> -s approved # Update state
|
|
151
|
+
npc cr pending-qa # CRs needing QA
|
|
152
|
+
|
|
153
|
+
# References & docs
|
|
154
|
+
npc refs list <id> # References on item
|
|
155
|
+
npc refs list <id> --inherited # Include ancestor refs
|
|
156
|
+
npc docs list <repo-id> # Uploaded documents
|
|
157
|
+
npc docs cat <repo-id> <doc-id> # Read document
|
|
158
|
+
|
|
159
|
+
# Project management (admin only)
|
|
160
|
+
npc project list # All projects
|
|
161
|
+
npc project stats # Progress overview
|
|
162
|
+
npc project dashboard <id> # Project dashboard
|
|
163
|
+
npc project schedule <id> # Run scheduler
|
|
164
|
+
npc repo stats # Per-repo breakdown
|
|
165
|
+
|
|
166
|
+
# DAG edges
|
|
167
|
+
npc edge list <repo-id> # Dependency edges
|
|
168
|
+
npc edge create <repo-id> <from> <to> # Create blocking edge
|
|
169
|
+
|
|
170
|
+
# Other
|
|
171
|
+
npc fetch # Cache items/edges/CRs locally
|
|
172
|
+
npc init # Initialize NPC in repo
|
|
173
|
+
npc models available # AI models in org pool
|
|
174
|
+
npc telemetry report-session # Push session telemetry
|
|
175
|
+
\`\`\`
|
|
176
|
+
`;
|
|
177
|
+
const agentsPath = "AGENTS.md";
|
|
178
|
+
if (existsSync(agentsPath)) {
|
|
179
|
+
const existing = readFileSync(agentsPath, "utf-8");
|
|
180
|
+
if (existing.includes("NPC — Project Orchestration")) {
|
|
181
|
+
console.log("[ok] AGENTS.md already has NPC section");
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
writeFileSync(agentsPath, existing.trimEnd() + "\n\n---\n" + npcSection);
|
|
185
|
+
console.log("[ok] NPC section appended to AGENTS.md");
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
writeFileSync(agentsPath, `# AI Agent Instructions\n\n` +
|
|
190
|
+
`Instructions for AI coding agents working in this repository.\n` +
|
|
191
|
+
npcSection);
|
|
192
|
+
console.log("[ok] AGENTS.md created with NPC section");
|
|
193
|
+
}
|
|
77
194
|
// 6. Add .npc/ to .gitignore
|
|
78
195
|
const gitignorePath = ".gitignore";
|
|
79
196
|
let gitignore = existsSync(gitignorePath)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|