opensddrag 0.1.1 → 0.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/README.md +87 -0
- package/package.json +1 -1
- package/src/commands/init.js +61 -46
- package/src/commands/status.js +7 -10
- package/src/config.js +53 -0
- package/src/templates/commands/index.js +82 -689
- package/src/templates/commands/opencode.js +59 -653
- package/src/templates/skill-md.js +180 -0
- package/src/templates/skills/_shared.js +35 -0
- package/src/templates/skills/apply.js +64 -0
- package/src/templates/skills/archive.js +52 -0
- package/src/templates/skills/continue.js +63 -0
- package/src/templates/skills/design.js +82 -0
- package/src/templates/skills/explore.js +62 -0
- package/src/templates/skills/flow.js +65 -0
- package/src/templates/skills/index.js +66 -186
- package/src/templates/skills/propose.js +74 -0
- package/src/templates/skills/search.js +60 -0
- package/src/templates/skills/spec.js +94 -0
- package/src/templates/skills/status.js +66 -0
- package/src/templates/skills/sync.js +65 -0
- package/src/templates/skills/tasks.js +70 -0
- package/src/templates/skills/verify.js +74 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
export const tasksSkill = {
|
|
2
|
+
name: "opensddrag-tasks",
|
|
3
|
+
description: "Break a design into atomic, verifiable implementation tasks",
|
|
4
|
+
body: (slug, note) => `# OpenSddRag — Tasks
|
|
5
|
+
${note}## When to use
|
|
6
|
+
After the design exists, to decompose specs + design into atomic, verifiable task artifacts.
|
|
7
|
+
Each task maps to one or more spec requirements (REQ-NNN) and is completable in under 4 hours.
|
|
8
|
+
|
|
9
|
+
## Inputs
|
|
10
|
+
$ARGUMENTS = change name.
|
|
11
|
+
|
|
12
|
+
## Workflow
|
|
13
|
+
|
|
14
|
+
### Step 1 — Read all planning artifacts
|
|
15
|
+
\`read_artifact(name="<change-name>-proposal", project_slug="${slug}")\`
|
|
16
|
+
\`read_artifact(name="<change-name>-design", project_slug="${slug}")\`
|
|
17
|
+
\`get_relationships(name="<change-name>-proposal", project_slug="${slug}")\`
|
|
18
|
+
Read each linked spec artifact.
|
|
19
|
+
|
|
20
|
+
### Step 2 — Plan task groups
|
|
21
|
+
Group tasks by logical phase. Each task MUST have:
|
|
22
|
+
- A clear **Goal** (what it accomplishes).
|
|
23
|
+
- **Acceptance criteria** referencing spec REQ-NNN items (not vague).
|
|
24
|
+
- **Dependencies** on other tasks (if any).
|
|
25
|
+
- Estimated effort: < 4 hours.
|
|
26
|
+
|
|
27
|
+
### Step 3 — Create each task artifact
|
|
28
|
+
Name each as \`<change-name>-task-<group>-<N>\`:
|
|
29
|
+
\`create_artifact(name="<change-name>-task-<group>-<N>", type="task", content="## Goal\\n<what this task accomplishes>\\n\\n## Acceptance Criteria\\n- [ ] REQ-NNN: <criterion>\\n- [ ] <criterion>\\n\\n## Dependencies\\n- <other task name or 'none'>", metadata={"change_name": "<change-name>", "group": "<group>", "order": <N>}, project_slug="${slug}")\`
|
|
30
|
+
|
|
31
|
+
### Step 4 — Link each task to its spec(s)
|
|
32
|
+
\`link_artifacts(source_name="<task-name>", target_name="<spec-name>", relationship_type="implements", project_slug="${slug}")\`
|
|
33
|
+
|
|
34
|
+
### Step 5 — Update working context with the task list
|
|
35
|
+
\`update_working_context(context={"change_name": "<change-name>", "tasks": ["<task-1>", "<task-2>", "..."], "current_task": null}, project_slug="${slug}")\`
|
|
36
|
+
|
|
37
|
+
### Step 6 — Record and show next steps
|
|
38
|
+
\`record_trace(action="tasks", result_summary="Created <N> tasks for <change-name>", project_slug="${slug}")\`
|
|
39
|
+
Show the full task list with names and goals, then tell the user:
|
|
40
|
+
"Tasks saved. Run /opsr:apply <change-name> to start implementing."
|
|
41
|
+
|
|
42
|
+
## Example task artifact
|
|
43
|
+
\`\`\`markdown
|
|
44
|
+
## Goal
|
|
45
|
+
Add a POST /sessions endpoint that issues a JWT for valid credentials.
|
|
46
|
+
|
|
47
|
+
## Acceptance Criteria
|
|
48
|
+
- [ ] REQ-002: Endpoint returns 200 + token for valid credentials
|
|
49
|
+
- [ ] REQ-003: Endpoint returns 401 for invalid credentials
|
|
50
|
+
- [ ] Unit tests cover both scenarios
|
|
51
|
+
|
|
52
|
+
## Dependencies
|
|
53
|
+
- <change>-task-db-1 (users table migration)
|
|
54
|
+
\`\`\`
|
|
55
|
+
|
|
56
|
+
Ordering tip: number tasks within a group (\`-task-<group>-<N>\`) so /opsr:apply can walk them
|
|
57
|
+
in dependency order. Put migrations and shared scaffolding first, feature work next, tests last
|
|
58
|
+
(or alongside, if the team writes tests with the code).
|
|
59
|
+
|
|
60
|
+
## Output
|
|
61
|
+
- One task artifact per unit of work, each linked to its spec(s).
|
|
62
|
+
- Working context updated with the ordered task list.
|
|
63
|
+
- **Unlocks:** /opsr:apply.
|
|
64
|
+
|
|
65
|
+
## Important rules
|
|
66
|
+
- Acceptance criteria MUST reference concrete REQ-NNN items — never "implement the feature".
|
|
67
|
+
- Keep each task < 4 hours; split anything larger.
|
|
68
|
+
- Tasks are individual database artifacts — NOT a single markdown checklist file.
|
|
69
|
+
`,
|
|
70
|
+
};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { harnessChecklistBlock } from "./_shared.js";
|
|
2
|
+
|
|
3
|
+
export const verifySkill = {
|
|
4
|
+
name: "opensddrag-verify",
|
|
5
|
+
description:
|
|
6
|
+
"Validate implementation against spec requirements and design decisions",
|
|
7
|
+
body: (slug, note) => `# OpenSddRag — Verify
|
|
8
|
+
${note}## When to use
|
|
9
|
+
After all tasks are implemented, to validate the implementation against spec requirements and
|
|
10
|
+
design decisions. Read-only — produces a structured report and modifies no artifacts.
|
|
11
|
+
|
|
12
|
+
## Inputs
|
|
13
|
+
$ARGUMENTS = change name.
|
|
14
|
+
|
|
15
|
+
## Workflow
|
|
16
|
+
|
|
17
|
+
### Step 1 — Load all artifacts
|
|
18
|
+
\`read_artifact(name="<change-name>-proposal", project_slug="${slug}")\`
|
|
19
|
+
\`read_artifact(name="<change-name>-design", project_slug="${slug}")\`
|
|
20
|
+
\`get_relationships(name="<change-name>-proposal", project_slug="${slug}")\`
|
|
21
|
+
Read each linked spec and task artifact.
|
|
22
|
+
|
|
23
|
+
### Step 2 — Verify COMPLETENESS
|
|
24
|
+
\`list_artifacts(type="task", status="draft", project_slug="${slug}")\`
|
|
25
|
+
- If pending tasks exist → **CRITICAL: Tasks not complete**.
|
|
26
|
+
Extract every REQ-NNN from the specs and search the codebase for implementation evidence.
|
|
27
|
+
- If a requirement has no evidence → **CRITICAL: Requirement not implemented**.
|
|
28
|
+
|
|
29
|
+
### Step 3 — Verify CORRECTNESS
|
|
30
|
+
For each spec scenario (WHEN/THEN), search for test coverage or implementation of the condition.
|
|
31
|
+
- If a scenario has no coverage → **WARNING: Scenario not covered**.
|
|
32
|
+
|
|
33
|
+
### Step 4 — Verify COHERENCE
|
|
34
|
+
Extract decisions from the design's "## Decisions" section. For each:
|
|
35
|
+
- Check the implementation follows the chosen approach.
|
|
36
|
+
- If it deviates → **SUGGESTION: Possible deviation from design**.
|
|
37
|
+
|
|
38
|
+
${harnessChecklistBlock(slug, "on_verify", "Declaring verification complete")}
|
|
39
|
+
### Step 5 — Generate the report
|
|
40
|
+
\`\`\`
|
|
41
|
+
## Verification Report: <change-name>
|
|
42
|
+
|
|
43
|
+
### Summary
|
|
44
|
+
| Dimension | Status |
|
|
45
|
+
|--------------|--------|
|
|
46
|
+
| Completeness | ✓/✗ |
|
|
47
|
+
| Correctness | ✓/✗ |
|
|
48
|
+
| Coherence | ✓/✗ |
|
|
49
|
+
|
|
50
|
+
### CRITICAL Issues
|
|
51
|
+
- [Issue]
|
|
52
|
+
|
|
53
|
+
### WARNING Issues
|
|
54
|
+
- [Issue]
|
|
55
|
+
|
|
56
|
+
### SUGGESTIONS
|
|
57
|
+
- [Issue]
|
|
58
|
+
|
|
59
|
+
### Assessment
|
|
60
|
+
[READY TO ARCHIVE | ISSUES MUST BE FIXED BEFORE ARCHIVING]
|
|
61
|
+
\`\`\`
|
|
62
|
+
|
|
63
|
+
### Step 6 — Record the verification
|
|
64
|
+
\`record_trace(action="verify", result_summary="Verification: <PASS/FAIL> — <N> critical, <N> warnings", project_slug="${slug}")\`
|
|
65
|
+
|
|
66
|
+
## Output
|
|
67
|
+
- A structured verification report (CRITICAL / WARNING / SUGGESTION). No artifacts are modified.
|
|
68
|
+
|
|
69
|
+
## Important rules
|
|
70
|
+
- This phase is READ-ONLY for artifacts — never change task or spec status here.
|
|
71
|
+
- Run the harness checklist (on_verify) before declaring verification complete.
|
|
72
|
+
- A change is not ready to archive while any CRITICAL issue remains.
|
|
73
|
+
`,
|
|
74
|
+
};
|