ultra-builder-pro-cli 0.12.1 → 0.14.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/.ultra-template/docs/research/README.md +21 -44
- package/.ultra-template/specs/discovery.md +10 -0
- package/CHANGELOG.md +95 -1
- package/README.md +31 -16
- package/adapters/_shared/codex-assets.cjs +23 -163
- package/adapters/_shared/handbook.cjs +2 -2
- package/adapters/_shared/runtime-assets.cjs +1 -0
- package/adapters/_shared/tests/runtime-assets.test.cjs +18 -0
- package/adapters/opencode.js +30 -120
- package/adapters/tests/claude.test.cjs +3 -2
- package/adapters/tests/codex-hook.test.cjs +34 -7
- package/adapters/tests/codex.test.cjs +21 -6
- package/adapters/tests/kimi-hook.test.cjs +34 -7
- package/adapters/tests/opencode.test.cjs +70 -84
- package/commands/ultra-init.md +1 -1
- package/docs/AGENT-CONTEXT.md +10 -6
- package/docs/ARCHITECTURE.md +40 -17
- package/docs/PLAN.zh-CN.md +5 -4
- package/docs/ROADMAP.md +2 -2
- package/docs/RUNTIME-COMPAT-MATRIX.md +4 -4
- package/docs/STATE-DB-ACCESS-POLICY.md +3 -3
- package/docs/USER-HANDBOOK-CONTRACT.md +5 -4
- package/hooks/active_task_context.py +22 -50
- package/hooks/context_spine.py +61 -299
- package/hooks/health_check.py +19 -17
- package/hooks/pre_stop_check.py +28 -33
- package/hooks/subagent_tracker.py +13 -19
- package/hooks/workflow_checkpoint.py +39 -47
- package/hooks/workflow_context.py +4 -9
- package/hooks/workflow_resume.py +48 -128
- package/mcp-server/breadcrumb.cjs +22 -0
- package/mcp-server/lib/archive-journal.cjs +192 -0
- package/mcp-server/lib/archive-journal.test.cjs +35 -0
- package/mcp-server/lib/baseline-workflow.cjs +404 -38
- package/mcp-server/lib/baseline-workflow.test.cjs +252 -0
- package/mcp-server/lib/change-workflow.cjs +249 -75
- package/mcp-server/lib/change-workflow.test.cjs +235 -1
- package/mcp-server/lib/context-spine.test.cjs +5 -0
- package/mcp-server/lib/doctor.cjs +14 -1
- package/mcp-server/lib/doctor.test.cjs +42 -4
- package/mcp-server/lib/init-project.cjs +292 -9
- package/mcp-server/lib/prd-parser.cjs +14 -41
- package/mcp-server/lib/prd-parser.test.cjs +49 -138
- package/mcp-server/lib/project-breadcrumb.cjs +139 -0
- package/mcp-server/lib/project-breadcrumb.test.cjs +112 -0
- package/mcp-server/lib/spec-learning.test.cjs +1 -1
- package/mcp-server/lib/state-authority.cjs +9 -3
- package/mcp-server/lib/state-db.cjs +154 -32
- package/mcp-server/lib/state-db.test.cjs +136 -4
- package/mcp-server/lib/state-ops.cjs +68 -6
- package/mcp-server/lib/task-expander.cjs +14 -37
- package/mcp-server/lib/task-expander.test.cjs +80 -164
- package/mcp-server/server.cjs +34 -37
- package/mcp-server/tests/init-project.test.cjs +162 -1
- package/mcp-server/tests/migrate.test.cjs +33 -0
- package/mcp-server/tests/server-contract.test.cjs +391 -17
- package/mcp-server/tests/state-db.test.cjs +14 -2
- package/mcp-server/tests/state-ops.test.cjs +108 -0
- package/package.json +2 -4
- package/skills/cc-collab/SKILL.md +2 -2
- package/skills/codex-collab/SKILL.md +2 -3
- package/skills/ultra-change/SKILL.md +18 -10
- package/skills/ultra-deliver/SKILL.md +13 -9
- package/skills/ultra-dev/SKILL.md +6 -4
- package/skills/ultra-doctor/SKILL.md +22 -7
- package/skills/ultra-init/SKILL.md +104 -59
- package/skills/ultra-init/references/brownfield-adoption.md +65 -37
- package/skills/ultra-plan/SKILL.md +20 -7
- package/skills/ultra-research/SKILL.md +12 -5
- package/skills/ultra-status/SKILL.md +6 -4
- package/skills/ultra-verify/SKILL.md +21 -30
- package/skills/ultra-verify/scripts/verify_wait.py +54 -54
- package/spec/cli-protocol.md +11 -1
- package/spec/mcp-tools.yaml +133 -19
- package/spec/schemas/state-db.sql +11 -0
- package/ultra-tools/cli.cjs +9 -5
- package/ultra-tools/commands/migrate.cjs +62 -36
- package/ultra-tools/commands/status.cjs +18 -9
- package/ultra-tools/commands/system.cjs +340 -6
- package/ultra-tools/commands/task.cjs +7 -1
- package/ultra-tools/status-command.test.cjs +29 -0
- package/ultra-tools/system-command.test.cjs +252 -1
- package/mcp-server/lib/llm-client.cjs +0 -157
- package/mcp-server/lib/llm-client.test.cjs +0 -156
- package/orchestrator/planner/expand-prompt.cjs +0 -62
- package/orchestrator/planner/expand-prompt.test.cjs +0 -52
- package/orchestrator/planner/prd-prompt.cjs +0 -44
- package/orchestrator/planner/prd-prompt.test.cjs +0 -30
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
// Phase 8A.1 — Prompt templates for PRD → task-list parsing.
|
|
4
|
-
//
|
|
5
|
-
// Kept in a dedicated module so downstream evaluation (fixture regression,
|
|
6
|
-
// prompt A/B testing) can diff the template against commits without touching
|
|
7
|
-
// parser logic.
|
|
8
|
-
|
|
9
|
-
const SYSTEM_PROMPT = `You are an engineering planner. Decompose a product requirement document (PRD) into a topologically ordered task list that a coding agent can execute sequentially or in parallel.
|
|
10
|
-
|
|
11
|
-
Output STRICT JSON matching this shape — nothing else, no markdown fences, no prose:
|
|
12
|
-
|
|
13
|
-
{
|
|
14
|
-
"tasks": [
|
|
15
|
-
{
|
|
16
|
-
"id": "task-1",
|
|
17
|
-
"title": "Imperative short title (3-80 chars)",
|
|
18
|
-
"type": "architecture | feature | bugfix",
|
|
19
|
-
"priority": "P0 | P1 | P2 | P3",
|
|
20
|
-
"complexity": 1-10,
|
|
21
|
-
"deps": ["task-2"],
|
|
22
|
-
"files_modified": ["src/path/to/file.ts"]
|
|
23
|
-
}
|
|
24
|
-
]
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
Rules:
|
|
28
|
-
- Every task id matches /^task-[0-9]+$/ and is unique in the list.
|
|
29
|
-
- "deps" references other ids in the same list; omit or use [] when none.
|
|
30
|
-
- "files_modified" is your best guess of affected paths; use [] when unsure.
|
|
31
|
-
- "complexity" 1 = trivial, 10 = multi-day. Tasks at 7+ will be auto-expanded later.
|
|
32
|
-
- "priority" — P0 blocks other work, P1 critical path, P2 standard, P3 nice-to-have.
|
|
33
|
-
- "type" — architecture for design/scaffolding, feature for new capability, bugfix for correcting existing behaviour.
|
|
34
|
-
- Return JSON only. No surrounding text, no trailing explanation.`;
|
|
35
|
-
|
|
36
|
-
function buildSystemPrompt() {
|
|
37
|
-
return SYSTEM_PROMPT;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
function buildUserPrompt(prdText) {
|
|
41
|
-
return `PRD:\n\n${prdText}\n\nReturn the task list as JSON following the system schema.`;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
module.exports = { SYSTEM_PROMPT, buildSystemPrompt, buildUserPrompt };
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const test = require('node:test');
|
|
4
|
-
const assert = require('node:assert/strict');
|
|
5
|
-
|
|
6
|
-
const {
|
|
7
|
-
SYSTEM_PROMPT,
|
|
8
|
-
buildSystemPrompt,
|
|
9
|
-
buildUserPrompt,
|
|
10
|
-
} = require('./prd-prompt.cjs');
|
|
11
|
-
|
|
12
|
-
test('buildSystemPrompt returns the module-level template', () => {
|
|
13
|
-
assert.equal(buildSystemPrompt(), SYSTEM_PROMPT);
|
|
14
|
-
assert.match(SYSTEM_PROMPT, /engineering planner/i);
|
|
15
|
-
assert.match(SYSTEM_PROMPT, /STRICT JSON/);
|
|
16
|
-
assert.match(SYSTEM_PROMPT, /\/\^task-\[0-9\]\+\$\//);
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
test('buildUserPrompt embeds PRD text verbatim', () => {
|
|
20
|
-
const prd = 'As a user I want to search products by keyword';
|
|
21
|
-
const out = buildUserPrompt(prd);
|
|
22
|
-
assert.ok(out.includes(prd), 'user prompt must contain the PRD text');
|
|
23
|
-
assert.match(out, /JSON/);
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
test('buildUserPrompt tolerates long PRD text without truncation', () => {
|
|
27
|
-
const long = 'line\n'.repeat(500);
|
|
28
|
-
const out = buildUserPrompt(long);
|
|
29
|
-
assert.ok(out.includes(long));
|
|
30
|
-
});
|