super-backlog 0.3.1

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,25 @@
1
+ # >>> super-backlog guard {{VERSION}} >>>
2
+ # Validates staged backlog/** task files structurally.
3
+ # Escape hatch: git commit --no-verify
4
+ staged=$(git diff --cached --name-only --diff-filter=ACMR -- 'backlog/*' 2>/dev/null || true)
5
+ if [ -n "$staged" ]; then
6
+ staged="$staged" node --input-type=commonjs -e '
7
+ const fs = require("fs");
8
+ const errs = [];
9
+ for (const f of process.env.staged.split("\n").filter(Boolean)) {
10
+ if (!/^backlog\/tasks\/.+\.md$/.test(f)) continue;
11
+ const content = fs.readFileSync(f, "utf8");
12
+ const fm = /^---\r?\n([\s\S]*?)\r?\n---/.exec(content);
13
+ if (!fm) { errs.push(`${f}: missing frontmatter (use the backlog CLI)`); continue; }
14
+ const get = (n) => { const m = new RegExp("^" + n + ":\\s*(.*?)\\s*$", "m").exec(fm[1]); return m ? m[1].replace(/^["\x27]|["\x27]$/g, "") : null; };
15
+ const id = get("id"), title = get("title");
16
+ const stem = f.replace(/^backlog\/tasks\//, "").replace(/\.md$/, "");
17
+ const base = stem.includes(" - ") ? stem.split(" - ")[0] : stem;
18
+ if (!id) errs.push(`${f}: missing id`);
19
+ else if (id.toLowerCase() !== base.toLowerCase()) errs.push(`${f}: id ${id} != filename stem ${base}`);
20
+ if (!title) errs.push(`${f}: empty title`);
21
+ }
22
+ if (errs.length) { console.error("super-backlog guard rejected this commit:\n" + errs.map(e => " - " + e).join("\n") + "\nBypass: git commit --no-verify"); process.exit(1); }
23
+ ' || exit 1
24
+ fi
25
+ # <<< super-backlog guard <<<
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: backlog-status-report
3
+ description: Summarize current project state from Backlog.md (task counts, in-progress work, milestones) and point to the Project Dashboard. Use when the user asks for status, progress, or a project overview.
4
+ ---
5
+
6
+ # Backlog Status Report: project state at a glance
7
+
8
+ Read-only summary of the Backlog.md data in this project.
9
+
10
+ ## When this skill runs
11
+
12
+ - The user asks for status, progress, or an overview ("where are we?").
13
+ - Before or after a work session, to orient.
14
+
15
+ ## Procedure
16
+
17
+ 1. Read `backlog instructions overview` if not already loaded this session.
18
+ 2. Collect data: `backlog task list --json` plus milestones via the backlog CLI.
19
+ 3. Report compactly in chat:
20
+ - Counts per status (To Do / In Progress / Done)
21
+ - Every In Progress task: ID, title, open acceptance criteria
22
+ - Milestones with done/total
23
+ - Blocked or stale items worth flagging
24
+ 4. Point to the visual surfaces: `sbl dashboard --serve` (live dashboard) or
25
+ `backlog browser` (interactive Kanban).
26
+
27
+ ## Boundaries
28
+
29
+ - Strictly read-only: never change task status, never edit tasks.
30
+ - Never guess state from memory — always read fresh CLI output.
31
+ - Keep the report short; link details instead of pasting them.
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: spec-to-backlog
3
+ description: Convert an approved design/implementation plan (from brainstorming/writing-plans) into reviewed Backlog.md tasks with acceptance criteria, milestones and dependencies. Use after a design is approved, when the user asks to decompose work into tasks, or before starting planned work in this project.
4
+ ---
5
+
6
+ # Spec → Backlog: turn plan units into tracked tasks
7
+
8
+ Bridge between Superpowers (brainstorming, writing-plans) and Backlog.md.
9
+
10
+ ## When this skill runs
11
+
12
+ 1. After an approved design doc (end of brainstorming), BEFORE implementing.
13
+ 2. After writing-plans, to materialize plan units as tasks.
14
+ 3. When the user asks to split work into tasks.
15
+
16
+ ## Procedure
17
+
18
+ 1. Read `backlog instructions overview` and `backlog instructions task-creation` first.
19
+ 2. Decompose: every plan unit becomes ONE task, small enough for one session/PR.
20
+ 3. Create per task:
21
+ backlog task create "Title" -d "<goal/context>" --ac "<criterion 1>" --ac "<criterion 2>" --type feature --label feature --ref "<path/to/plan-doc>"
22
+ - Dependencies: --dep TASK-y (order follows the plan).
23
+ - Larger efforts: backlog milestone add `"<Name>"`, attach via -m.
24
+ - Reference the plan doc via --ref; NEVER copy it into the task.
25
+ 4. Never set --plan or --notes at create time — those belong to the "task started" checkpoint after codebase research.
26
+ 5. STOP at the review gate: the human reviews specs and acceptance criteria (backlog board / backlog browser / dashboard.html) before any code exists.
27
+
28
+ ## Boundaries
29
+
30
+ - Never hand-edit task markdown; use the backlog CLI exclusively.
31
+ - No code, no worktrees, no status changes inside this skill.
32
+ - Project-specific human-gate topics get their own tasks with an explicit review gate.
@@ -0,0 +1,30 @@
1
+ ---
2
+ name: task-review-gate
3
+ description: Enforce the human review checkpoint before implementation starts. Use after tasks were created from a plan, or when the user asks to implement a specific task, to present the task and its acceptance criteria and wait for explicit approval before any code.
4
+ ---
5
+
6
+ # Task Review Gate: no code before an explicit yes
7
+
8
+ Human checkpoint between reviewed specs and the first line of code.
9
+
10
+ ## When this skill runs
11
+
12
+ 1. Right after spec-to-backlog created tasks (review specs + acceptance criteria).
13
+ 2. When the user asks to implement a specific task (restate scope before starting).
14
+
15
+ ## Procedure
16
+
17
+ 1. Load the task: `backlog task view <ID> --plain`.
18
+ 2. Present compactly: goal, every acceptance criterion, dependencies, and the
19
+ recorded plan if one exists.
20
+ 3. STOP and wait for the user's explicit approval. Silence or a topic change
21
+ is NOT approval.
22
+ 4. Only after approval: set the task In Progress via the backlog CLI and start
23
+ with a plan-before-code pass if no plan is recorded yet.
24
+
25
+ ## Boundaries
26
+
27
+ - Never approve the gate yourself; vague consent is not approval.
28
+ - Trivial edits stay exempt only on explicit user instruction.
29
+ - If acceptance criteria look wrong or incomplete, send the user back to task
30
+ editing instead of starting.
@@ -0,0 +1,31 @@
1
+ ## Workflow system
2
+
3
+ This section is managed by super-backlog {{VERSION}}.
4
+
5
+ **Roles:** Backlog.md = WHAT — specs, acceptance criteria, status and history,
6
+ managed exclusively through the `backlog` CLI. Superpowers = HOW — the
7
+ methodology skills that decide how the work is done.
8
+
9
+ ### Pipeline (follow in order)
10
+
11
+ | # | Phase | Gate to pass |
12
+ |---|-------|--------------|
13
+ | 1 | Idea | User states a need; capture it before doing anything else |
14
+ | 2 | Brainstorming | Explore intent, requirements and design before any creative work |
15
+ | 3 | Design gate | Human approves the design document |
16
+ | 4 | Spec-to-backlog | Decompose the approved design into reviewed tasks with acceptance criteria |
17
+ | 5 | Review gate | Human reviews specs and acceptance criteria before any code exists |
18
+ | 6 | Plan-before-code | A written implementation plan is approved by the human |
19
+ | 7 | TDD implementation | Failing test first, then code; one task per session/PR |
20
+ | 8 | Verification & final summary | Run tests/lint/typecheck; verification evidence before success claims |
21
+ | 9 | Merge & archive | Merge the branch, then close/archive the task via the backlog CLI |
22
+
23
+ ### Binding rules
24
+
25
+ 1. No task, no code — trivial edits only on explicit user instruction.
26
+ 2. Plan before code — implementation starts only after an approved written plan.
27
+ 3. Task status changes always go through the CLI backed by verification evidence, never from memory.
28
+ 4. Skills take precedence over habit whenever a matching skill exists.
29
+
30
+ Project-specific human gates are intentionally out of scope for this block.
31
+ Add project-specific human gates below the block.
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "super-backlog",
3
+ "version": "0.3.1",
4
+ "description": "One command to equip any project with Backlog.md + Superpowers, plus a Project Dashboard.",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/adam-s-k-i/super-backlog"
9
+ },
10
+ "type": "module",
11
+ "engines": {
12
+ "node": ">=20"
13
+ },
14
+ "bin": {
15
+ "sbl": "dist/cli.js",
16
+ "super-backlog": "dist/cli.js"
17
+ },
18
+ "files": [
19
+ "dist",
20
+ "README.md"
21
+ ],
22
+ "scripts": {
23
+ "build": "tsc -p tsconfig.json && node scripts/copy-templates.mjs",
24
+ "pretest": "npm run build",
25
+ "test": "vitest run",
26
+ "test:watch": "vitest",
27
+ "lint": "markdownlint-cli2 \"**/*.md\" && cspell --no-progress --no-summary \"**/*.md\"",
28
+ "tasks": "backlog task list",
29
+ "board": "backlog board",
30
+ "browser": "backlog browser",
31
+ "dashboard": "super-backlog dashboard"
32
+ },
33
+ "devDependencies": {
34
+ "@types/node": "^26.2.0",
35
+ "backlog.md": "^1.50.1",
36
+ "cspell": "^10.1.1",
37
+ "markdownlint-cli2": "^0.23.2",
38
+ "super-backlog": "file:.",
39
+ "typescript": "^7.0.2",
40
+ "vitepress": "^1.6.4",
41
+ "vitest": "^4.1.11"
42
+ }
43
+ }