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.
@@ -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
+ };