@stylusnexus/work-plan 2026.7.10 → 2026.7.15
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 +9 -1
- package/VERSION +1 -1
- package/package.json +1 -1
- package/skills/work-plan/SKILL.md +1 -0
- package/skills/work-plan/commands/doctor.py +529 -0
- package/skills/work-plan/commands/export.py +14 -11
- package/skills/work-plan/commands/init_repo.py +3 -6
- package/skills/work-plan/commands/new_track.py +21 -2
- package/skills/work-plan/commands/plan_status.py +48 -6
- package/skills/work-plan/lib/config.py +29 -0
- package/skills/work-plan/lib/doc_discovery.py +22 -2
- package/skills/work-plan/lib/export_model.py +16 -3
- package/skills/work-plan/lib/github_state.py +25 -0
- package/skills/work-plan/lib/notes_vcs.py +21 -9
- package/skills/work-plan/lib/plan_worktree.py +47 -8
- package/skills/work-plan/lib/tracks.py +17 -3
- package/skills/work-plan/tests/test_config.py +59 -0
- package/skills/work-plan/tests/test_discover_archived.py +15 -0
- package/skills/work-plan/tests/test_doc_discovery.py +11 -0
- package/skills/work-plan/tests/test_doctor.py +852 -0
- package/skills/work-plan/tests/test_export.py +34 -8
- package/skills/work-plan/tests/test_export_command.py +101 -0
- package/skills/work-plan/tests/test_github_state.py +41 -1
- package/skills/work-plan/tests/test_group_apply.py +4 -0
- package/skills/work-plan/tests/test_new_track.py +79 -0
- package/skills/work-plan/tests/test_notes_vcs.py +30 -0
- package/skills/work-plan/tests/test_plan_status_stamp.py +68 -0
- package/skills/work-plan/tests/test_plan_worktree.py +31 -0
- package/skills/work-plan/tests/test_tracks.py +55 -1
- package/skills/work-plan/work_plan.py +20 -0
|
@@ -61,6 +61,7 @@ SUBCOMMANDS = {
|
|
|
61
61
|
"in-progress": "commands.in_progress",
|
|
62
62
|
"export": "commands.export",
|
|
63
63
|
"which-repo": "commands.which_repo",
|
|
64
|
+
"doctor": "commands.doctor",
|
|
64
65
|
"auth-status": "commands.auth_status",
|
|
65
66
|
"list-open-issues": "commands.list_open_issues",
|
|
66
67
|
"set": "commands.set_field",
|
|
@@ -259,6 +260,17 @@ DESCRIPTIONS = [
|
|
|
259
260
|
"Resolve the current directory to one configured repo — by local clone path first, then the git `origin` remote. Prints the matched config key + GitHub slug, or reports no match. Read-only. Underlies `brief` cwd auto-scope and the VS Code viewer's repo auto-focus.",
|
|
260
261
|
"Rarely run by hand — it's the shared resolver the viewer and `brief` call. Useful to confirm which repo a checkout maps to.",
|
|
261
262
|
"/work-plan which-repo --json"),
|
|
263
|
+
("doctor", "[--json] [--fix]",
|
|
264
|
+
"Detect drift between config.yml, local git clones, GitHub, and notes_root track "
|
|
265
|
+
"frontmatter — a renamed local folder or GitHub repo that config.yml no longer "
|
|
266
|
+
"matches, a non-git local path, duplicate entries, an invalid/missing notes_root, "
|
|
267
|
+
"an orphaned notes folder, or a stale per-track github.repo. --fix corrects only "
|
|
268
|
+
"the two mechanically-safe cases (a GitHub-confirmed rename, a stale track slug) "
|
|
269
|
+
"and always re-scans afterward before deciding success.",
|
|
270
|
+
"Run right after renaming a project's local folder or its GitHub repo — this is "
|
|
271
|
+
"exactly the class of bug that silently breaks the VS Code viewer's Auto Focus "
|
|
272
|
+
"Repo setting with zero visible signal.",
|
|
273
|
+
"/work-plan doctor --fix"),
|
|
262
274
|
]
|
|
263
275
|
|
|
264
276
|
|
|
@@ -352,6 +364,14 @@ _READONLY_SUBCOMMANDS = frozenset({
|
|
|
352
364
|
# plan-branch manages its OWN commits on the plan branch (init seeds +
|
|
353
365
|
# commits the skeleton itself); the auto-commit hooks must not also fire.
|
|
354
366
|
"plan-branch",
|
|
367
|
+
# doctor writes config.yml (unversioned, outside any repo) and private
|
|
368
|
+
# notes_root/ frontmatter under --fix, but never a repo's shared
|
|
369
|
+
# .work-plan/ tier — so it's read-only from the dispatcher's perspective
|
|
370
|
+
# too, sidestepping _shared_precommit_state's plan_worktree.ensure_worktree
|
|
371
|
+
# side effect. doctor --fix manages its own notes-vcs commit directly
|
|
372
|
+
# (see commands/doctor.py's dirty-file policy), same self-managed-commit
|
|
373
|
+
# precedent as plan-branch.
|
|
374
|
+
"doctor",
|
|
355
375
|
})
|
|
356
376
|
|
|
357
377
|
|