@jenga-ai/agent 2.0.0 → 3.1.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 +82 -243
- package/agents/developer.md +5 -5
- package/agents/scrum-master.md +23 -23
- package/agents/tester.md +5 -5
- package/bin/jenga.js +10 -0
- package/hooks/copilot_session_end.sh +7 -3
- package/hooks/prompt_router_helper.js +17 -5
- package/lib/commands/doctor.js +351 -0
- package/lib/commands/init.js +16 -0
- package/lib/generate-copilot-hooks.js +116 -0
- package/lib/generate-skill-allow-list.js +9 -3
- package/lib/legacy-shipped-paths.json +336 -0
- package/lib/postinstall-manifest.js +469 -0
- package/lib/skill-allow-list.json +2 -3
- package/package.json +16 -25
- package/scripts/apply-j-prefix.sh +25 -12
- package/scripts/generate-j-alias.sh +333 -0
- package/scripts/generate-legacy-shipped-paths.js +248 -0
- package/scripts/postinstall.js +205 -2
- package/scripts/verify-legacy-seed-reconcile.sh +254 -0
- package/scripts/verify-postinstall-reconcile.sh +392 -0
- package/skills/{brainstorm → j-brainstorm}/SKILL.md +9 -2
- package/skills/{btw → j-btw}/SKILL.md +9 -2
- package/skills/{clearify → j-clearify}/SKILL.md +9 -2
- package/skills/{close-story → j-close-story}/SKILL.md +17 -10
- package/skills/{close-story → j-close-story}/scripts/check-privatized.sh +2 -2
- package/skills/{close-story → j-close-story}/scripts/check-story-closeable.sh +1 -1
- package/skills/{close-story → j-close-story}/scripts/extract-task-diff-stats.sh +1 -1
- package/skills/{commit → j-commit}/SKILL.md +9 -2
- package/skills/j-continue/SKILL.md +36 -0
- package/skills/{deep-dive → j-deep-dive}/SKILL.md +9 -8
- package/skills/{dev-done → j-dev-done}/SKILL.md +11 -4
- package/skills/{dev-done → j-dev-done}/scripts/classify-commit-outcome.sh +4 -4
- package/skills/{distribute → j-distribute}/SKILL.md +17 -10
- package/skills/{distribute → j-distribute}/scripts/distribute-changes.sh +1 -1
- package/skills/{do → j-do}/SKILL.md +12 -5
- package/skills/{doc → j-doc}/README.md +5 -5
- package/skills/{doc → j-doc}/SKILL.md +15 -8
- package/skills/{doc → j-doc}/authoring-notes.md +1 -1
- package/skills/{doc-sync → j-doc-sync}/SKILL.md +9 -2
- package/skills/{dooo → j-dooo}/SKILL.md +9 -2
- package/skills/j-error/SKILL.md +36 -0
- package/skills/{evaluate → j-evaluate}/SKILL.md +9 -2
- package/skills/j-examplify/SKILL.md +49 -0
- package/skills/{help → j-help}/SKILL.md +9 -2
- package/skills/{idea → j-idea}/SKILL.md +10 -3
- package/skills/{idea → j-idea}/assets/idea_handoff_template.md +1 -1
- package/skills/{improve → j-improve}/SKILL.md +9 -2
- package/skills/j-init/SKILL.md +2 -2
- package/skills/j-jbp/SKILL.md +32 -0
- package/skills/j-lgtm/SKILL.md +28 -0
- package/skills/{pi-plan → j-pi-plan}/SKILL.md +10 -3
- package/skills/{proceed → j-proceed}/SKILL.md +9 -2
- package/skills/{publish → j-publish}/SKILL.md +47 -40
- package/skills/{publish → j-publish}/adapters/droplet.md +1 -1
- package/skills/{publish → j-publish}/adapters/mobile-ios.md +3 -3
- package/skills/{publish → j-publish}/adapters/npm-ci.md +3 -3
- package/skills/{publish → j-publish}/adapters/npm.md +8 -8
- package/skills/{publish → j-publish}/assets/ci-contract.md +2 -2
- package/skills/{publish → j-publish}/schemas/publish.schema.json +1 -1
- package/skills/{publish → j-publish}/scripts/npm_stage_inspect.sh +34 -1
- package/skills/{publish → j-publish}/scripts/npm_stage_pipeline.sh +9 -4
- package/skills/{publish → j-publish}/scripts/publish_deploy.sh +4 -4
- package/skills/{publish → j-publish}/scripts/validate_npm_stage_env.sh +1 -1
- package/skills/{publish → j-publish}/wizards/droplet.md +1 -1
- package/skills/{publish → j-publish}/wizards/mobile-ios.md +1 -1
- package/skills/{publish → j-publish}/wizards/npm-ci.md +1 -1
- package/skills/{publish → j-publish}/wizards/npm.md +1 -1
- package/skills/{reconcile → j-reconcile}/SKILL.md +12 -5
- package/skills/{reconcile → j-reconcile}/scripts/detect-unlinked-code.sh +2 -2
- package/skills/{reconcile → j-reconcile}/scripts/resolve-reconcile-scope.sh +3 -3
- package/skills/{reconcile-origin → j-reconcile-origin}/SKILL.md +13 -6
- package/skills/{redo → j-redo}/SKILL.md +9 -2
- package/skills/{skillify → j-skillify}/SKILL.md +10 -3
- package/skills/{spinoff → j-spinoff}/SKILL.md +9 -2
- package/skills/{status → j-status}/SKILL.md +9 -2
- package/skills/{todo → j-todo}/SKILL.md +10 -3
- package/skills/{todo → j-todo}/assets/todo_handoff_template.md +1 -1
- package/skills/{todo → j-todo}/scripts/add_trivial_task.sh +3 -3
- package/skills/{todo → j-todo}/scripts/update_story_tasks.py +2 -2
- package/skills/{uncharted → j-uncharted}/SKILL.md +35 -28
- package/skills/{uncharted → j-uncharted}/assets/UNDERSTANDING_DOC_TEMPLATE.md +2 -2
- package/skills/{uncharted → j-uncharted}/scripts/detect-dependencies.sh +1 -1
- package/skills/{uncharted → j-uncharted}/scripts/detect-tests.sh +1 -1
- package/skills/{uncharted → j-uncharted}/scripts/directory-triage.sh +3 -3
- package/skills/{uncharted → j-uncharted}/scripts/elicitation-state.sh +3 -3
- package/skills/{uncharted → j-uncharted}/scripts/enumerate-target.sh +1 -1
- package/skills/{uncharted → j-uncharted}/scripts/import-source.sh +1 -1
- package/skills/{uncharted → j-uncharted}/scripts/inspect-provenance.sh +1 -1
- package/skills/{uncharted → j-uncharted}/scripts/resolve-segment-target.sh +5 -5
- package/skills/{uncharted → j-uncharted}/scripts/run-engine.sh +1 -1
- package/skills/{uncharted → j-uncharted}/scripts/validate-proposed-items.sh +2 -2
- package/skills/{uncharted → j-uncharted}/scripts/write-backfilled-epics.sh +1 -1
- package/skills/j-wtf/SKILL.md +27 -0
- package/skills/jenga/SKILL.md +1 -1
- package/skills/jenga-permission-level/SKILL.md +1 -1
- package/templates/SCRUM_BOARD_SCHEMA.md +1 -1
- package/templates/agent-context.md.tpl +10 -10
- package/templates/copilot-instructions.md.tpl +89 -19
- package/skills/continue/SKILL.md +0 -29
- package/skills/error/SKILL.md +0 -29
- package/skills/examplify/SKILL.md +0 -42
- package/skills/init/SKILL.md +0 -155
- package/skills/init/assets/scope-thresholds_template.json +0 -7
- package/skills/init/assets/strategy_stub_template.md +0 -38
- package/skills/init/assets/workflow_template.json +0 -30
- package/skills/init/scripts/apply-project-visibility.sh +0 -176
- package/skills/init/scripts/detect-existing-codebase.sh +0 -166
- package/skills/init/scripts/init.sh +0 -116
- package/skills/jbp/SKILL.md +0 -25
- package/skills/lgtm/SKILL.md +0 -21
- package/skills/skillify/assets/init-new/assets/.gitignore_template +0 -15
- package/skills/skillify/assets/init-new/assets/PROJECT_SUMMARY_template.md +0 -13
- package/skills/skillify/assets/init-new/assets/directory_structure.txt +0 -14
- package/skills/skillify/assets/init-new/assets/test-config_template.json +0 -4
- package/skills/wtf/SKILL.md +0 -20
- /package/skills/{close-story → j-close-story}/scripts/compute-scope-divergence.sh +0 -0
- /package/skills/{close-story → j-close-story}/scripts/extract-diff-stats.sh +0 -0
- /package/skills/{close-story → j-close-story}/scripts/update-task-frontmatter.sh +0 -0
- /package/skills/{commit → j-commit}/assets/user_instructions_template.md +0 -0
- /package/skills/{distribute → j-distribute}/CONFIG_SCHEMA.md +0 -0
- /package/skills/{distribute → j-distribute}/scripts/check-version.sh +0 -0
- /package/skills/{distribute → j-distribute}/scripts/commit-version-bump.sh +0 -0
- /package/skills/{do → j-do}/assets/intent-vs-diff-prompt.md +0 -0
- /package/skills/{do → j-do}/assets/sender_template.json +0 -0
- /package/skills/{doc → j-doc}/assets/path-objectives.yaml +0 -0
- /package/skills/{doc → j-doc}/scripts/resolve_last_update.py +0 -0
- /package/skills/{doc-sync → j-doc-sync}/assets/default_excludes.txt +0 -0
- /package/skills/{doc-sync → j-doc-sync}/assets/doc_targets.md +0 -0
- /package/skills/{evaluate → j-evaluate}/assets/evaluation_invokation_template.yml +0 -0
- /package/skills/{evaluate → j-evaluate}/assets/evaluation_rapport_template.md +0 -0
- /package/skills/{idea → j-idea}/assets/idea_template.md +0 -0
- /package/skills/{pi-plan → j-pi-plan}/assets/epic.json +0 -0
- /package/skills/{pi-plan → j-pi-plan}/assets/story_template.md +0 -0
- /package/skills/{publish → j-publish}/assets/ExportOptions.plist.template +0 -0
- /package/skills/{publish → j-publish}/assets/ownership-matrix.md +0 -0
- /package/skills/{publish → j-publish}/assets/publish.example.json +0 -0
- /package/skills/{publish → j-publish}/assets/publish.example.npm-ci.json +0 -0
- /package/skills/{publish → j-publish}/assets/publish.example.npm.json +0 -0
- /package/skills/{publish → j-publish}/assets/secrets-guide.md +0 -0
- /package/skills/{publish → j-publish}/schemas/fixtures/npm-ci-minimal.json +0 -0
- /package/skills/{publish → j-publish}/schemas/fixtures/npm-ci-with-empty-secrets.json +0 -0
- /package/skills/{publish → j-publish}/schemas/fixtures/npm-ci-with-workflow-path.json +0 -0
- /package/skills/{publish → j-publish}/scripts/check_target_config.sh +0 -0
- /package/skills/{publish → j-publish}/scripts/droplet_pipeline.sh +0 -0
- /package/skills/{publish → j-publish}/scripts/finalize_changelog.sh +0 -0
- /package/skills/{publish → j-publish}/scripts/generate_release_notes.sh +0 -0
- /package/skills/{publish → j-publish}/scripts/ios_pipeline.sh +0 -0
- /package/skills/{publish → j-publish}/scripts/npm_ci_pipeline.sh +0 -0
- /package/skills/{publish → j-publish}/scripts/npm_pipeline.sh +0 -0
- /package/skills/{publish → j-publish}/scripts/publish_common.sh +0 -0
- /package/skills/{publish → j-publish}/scripts/reconcile_tags.sh +0 -0
- /package/skills/{publish → j-publish}/scripts/run_gates.sh +0 -0
- /package/skills/{publish → j-publish}/scripts/setup_wizard.sh +0 -0
- /package/skills/{publish → j-publish}/scripts/show_history.sh +0 -0
- /package/skills/{publish → j-publish}/scripts/suggest_semver_bump.sh +0 -0
- /package/skills/{publish → j-publish}/scripts/validate_config.sh +0 -0
- /package/skills/{publish → j-publish}/scripts/validate_droplet_env.sh +0 -0
- /package/skills/{publish → j-publish}/scripts/validate_ios_env.sh +0 -0
- /package/skills/{publish → j-publish}/scripts/validate_npm_ci_env.sh +0 -0
- /package/skills/{publish → j-publish}/scripts/validate_npm_env.sh +0 -0
- /package/skills/{publish → j-publish}/scripts/write_ledger_entry.sh +0 -0
- /package/skills/{reconcile → j-reconcile}/assets/report_format.md +0 -0
- /package/skills/{reconcile-origin → j-reconcile-origin}/scripts/reconcile-origin.sh +0 -0
- /package/skills/{skillify → j-skillify}/assets/init-new/SKILL.md +0 -0
- /package/skills/{init → j-skillify/assets/init-new}/assets/.gitignore_template +0 -0
- /package/skills/{init → j-skillify/assets/init-new}/assets/PROJECT_SUMMARY_template.md +0 -0
- /package/skills/{init → j-skillify/assets/init-new}/assets/directory_structure.txt +0 -0
- /package/skills/{init → j-skillify/assets/init-new}/assets/test-config_template.json +0 -0
- /package/skills/{skillify → j-skillify}/assets/init-new/assets/workflow_template.json +0 -0
- /package/skills/{skillify → j-skillify}/assets/init-new/scripts/init.sh +0 -0
- /package/skills/{skillify → j-skillify}/assets/init-old/SKILL.md +0 -0
- /package/skills/{status → j-status}/assets/output_format.md +0 -0
- /package/skills/{todo → j-todo}/assets/todo_template.md +0 -0
- /package/skills/{uncharted → j-uncharted}/assets/SEGMENT_PROPOSAL_TEMPLATE.md +0 -0
- /package/skills/{uncharted → j-uncharted}/scripts/apply-subsystem-cap.sh +0 -0
- /package/skills/{uncharted → j-uncharted}/scripts/discover-subsystems.sh +0 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: j.continue
|
|
3
|
+
description: Polyfill alias of the continue skill under a collision-safe directory name. Identical behavior to /continue — Check project status across PROJECT_SUMMARY.md, epics, and stories to determine what should be done next. Reports "All done!" if everything is complete. Use when the bare /continue form is shadowed by another tool's own built-in command of the same name.
|
|
4
|
+
keywords:
|
|
5
|
+
- continue
|
|
6
|
+
- next
|
|
7
|
+
- proceed
|
|
8
|
+
- what's next
|
|
9
|
+
- status
|
|
10
|
+
- j-continue
|
|
11
|
+
- polyfill
|
|
12
|
+
examples:
|
|
13
|
+
- "what should I do next?"
|
|
14
|
+
- "continue with the project"
|
|
15
|
+
- "j-continue"
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Continue — Pick Up the Next Work Item
|
|
19
|
+
|
|
20
|
+
This skill is a literal-directory-name duplicate of `skills/continue/`. It exists so that `/j-continue` (and `j.j-continue`) give a guaranteed-unshadowed way to reach the same flow as `/continue`, even if a host tool's own built-in command of the same name would otherwise shadow or override the bare `/continue` alias (Claude Code's native skill resolution is a literal-string, directory-name-based match — see `docs/skill-authoring.md`'s "Invocation Convention").
|
|
21
|
+
|
|
22
|
+
This file is generated/synced by `scripts/generate-j-alias.sh continue` from `skills/continue/SKILL.md` — do not hand-edit it; re-run the generator instead to pick up source changes.
|
|
23
|
+
|
|
24
|
+
## Instructions
|
|
25
|
+
|
|
26
|
+
1. **Check `project/PROJECT_SUMMARY.md`** — Determine if there is outstanding work at the project level.
|
|
27
|
+
|
|
28
|
+
2. **Check `project/epics/`** — If the project summary is done, check if any epics have remaining work.
|
|
29
|
+
|
|
30
|
+
3. **Check `project/stories/`** — If epics are done, check if any stories have remaining work.
|
|
31
|
+
|
|
32
|
+
**Important:** Always check story status within an epic even if the epic itself is marked as done.
|
|
33
|
+
|
|
34
|
+
4. **If everything is complete** — Respond with: "All done! 🎉"
|
|
35
|
+
|
|
36
|
+
5. **Otherwise** — Begin work on the next incomplete item.
|
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: j
|
|
3
|
-
description:
|
|
4
|
-
Multi-phase investigation workflow. The scrum-master orchestrates information
|
|
5
|
-
gathering, interactive brainstorming, critical scrutiny, and solution assessment
|
|
6
|
-
to produce a refined, well-considered output document. Use when a request needs
|
|
7
|
-
thorough analysis before committing to a plan. Triggers on phrases like
|
|
8
|
-
"deep dive", "investigate thoroughly", "think this through properly",
|
|
9
|
-
"analyze this in depth", or "I want a thorough analysis of".
|
|
2
|
+
name: j.deep-dive
|
|
3
|
+
description: Polyfill alias of the deep-dive skill under a collision-safe directory name. Identical behavior to /deep-dive — >. Use when the bare /deep-dive form is shadowed by another tool's own built-in command of the same name.
|
|
10
4
|
metadata:
|
|
11
5
|
prefered_agent: scrum_master
|
|
12
6
|
keywords:
|
|
@@ -14,15 +8,22 @@ keywords:
|
|
|
14
8
|
- "investigate"
|
|
15
9
|
- "analyze thoroughly"
|
|
16
10
|
- "think through"
|
|
11
|
+
- j-deep-dive
|
|
12
|
+
- polyfill
|
|
17
13
|
examples:
|
|
18
14
|
- "deep dive on this idea"
|
|
19
15
|
- "let's think through this properly"
|
|
20
16
|
- "I want a thorough analysis of this feature"
|
|
21
17
|
- "investigate this proposal in depth"
|
|
18
|
+
- "j-deep-dive"
|
|
22
19
|
---
|
|
23
20
|
|
|
24
21
|
# /deep-dive — Deep Investigation Workflow
|
|
25
22
|
|
|
23
|
+
This skill is a literal-directory-name duplicate of `skills/deep-dive/`. It exists so that `/j-deep-dive` (and `j.j-deep-dive`) give a guaranteed-unshadowed way to reach the same flow as `/deep-dive`, even if a host tool's own built-in command of the same name would otherwise shadow or override the bare `/deep-dive` alias (Claude Code's native skill resolution is a literal-string, directory-name-based match — see `docs/skill-authoring.md`'s "Invocation Convention").
|
|
24
|
+
|
|
25
|
+
This file is generated/synced by `scripts/generate-j-alias.sh deep-dive` from `skills/deep-dive/SKILL.md` — do not hand-edit it; re-run the generator instead to pick up source changes.
|
|
26
|
+
|
|
26
27
|
## Overview
|
|
27
28
|
|
|
28
29
|
A multi-phase workflow that takes a user's request through structured investigation,
|
|
@@ -1,18 +1,25 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: j
|
|
3
|
-
description: Commit the current work and immediately sync it into the .claude/ and .agents/ mirrors. Shortcut that chains /commit followed by /self-sync.
|
|
2
|
+
name: j.dev-done
|
|
3
|
+
description: Polyfill alias of the dev-done skill under a collision-safe directory name. Identical behavior to /dev-done — Commit the current work and immediately sync it into the .claude/ and .agents/ mirrors. Shortcut that chains /commit followed by /self-sync. Use when the bare /dev-done form is shadowed by another tool's own built-in command of the same name.
|
|
4
4
|
keywords:
|
|
5
5
|
- dev done
|
|
6
6
|
- commit and sync
|
|
7
7
|
- commit and mirror
|
|
8
8
|
- done syncing
|
|
9
|
+
- j-dev-done
|
|
10
|
+
- polyfill
|
|
9
11
|
examples:
|
|
10
12
|
- "dev-done E42_S04_T01"
|
|
11
13
|
- "commit this and sync the mirrors"
|
|
14
|
+
- "j-dev-done"
|
|
12
15
|
---
|
|
13
16
|
|
|
14
17
|
# Dev-Done — Commit, then Sync the Mirrors
|
|
15
18
|
|
|
19
|
+
This skill is a literal-directory-name duplicate of `skills/dev-done/`. It exists so that `/j-dev-done` (and `j.j-dev-done`) give a guaranteed-unshadowed way to reach the same flow as `/dev-done`, even if a host tool's own built-in command of the same name would otherwise shadow or override the bare `/dev-done` alias (Claude Code's native skill resolution is a literal-string, directory-name-based match — see `docs/skill-authoring.md`'s "Invocation Convention").
|
|
20
|
+
|
|
21
|
+
This file is generated/synced by `scripts/generate-j-alias.sh dev-done` from `skills/dev-done/SKILL.md` — do not hand-edit it; re-run the generator instead to pick up source changes.
|
|
22
|
+
|
|
16
23
|
Chains `/commit <scope-id>` and `/self-sync`, the same "convenience shortcut" pattern `skills/lgtm/SKILL.md`
|
|
17
24
|
uses for `/commit` + `/continue` — applied here to the commit -> mirror-sync sequence instead of the
|
|
18
25
|
commit -> next-task sequence. Useful right after implementing a root-level framework change
|
|
@@ -20,7 +27,7 @@ commit -> next-task sequence. Useful right after implementing a root-level frame
|
|
|
20
27
|
`.agents/` mirrors never sit stale waiting on a manual `/self-sync` call.
|
|
21
28
|
|
|
22
29
|
The deterministic decision of whether `/commit` halted early (nothing to commit) or completed
|
|
23
|
-
normally lives in `skills/dev-done/scripts/classify-commit-outcome.sh`, not inline here — see that
|
|
30
|
+
normally lives in `skills/j-dev-done/scripts/classify-commit-outcome.sh`, not inline here — see that
|
|
24
31
|
script's header for the exact contract.
|
|
25
32
|
|
|
26
33
|
## Instructions
|
|
@@ -32,7 +39,7 @@ script's header for the exact contract.
|
|
|
32
39
|
|
|
33
40
|
2. Pass the captured output to the classifier script:
|
|
34
41
|
```
|
|
35
|
-
skills/dev-done/scripts/classify-commit-outcome.sh <<< "$COMMIT_OUTPUT"
|
|
42
|
+
skills/j-dev-done/scripts/classify-commit-outcome.sh <<< "$COMMIT_OUTPUT"
|
|
36
43
|
```
|
|
37
44
|
|
|
38
45
|
3. If the script exits `1` (HALT): print its stdout — the exact message `No implementation to
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
# ---------------------------------------------------------------------------
|
|
3
|
-
# skills/dev-done/scripts/classify-commit-outcome.sh
|
|
3
|
+
# skills/j-dev-done/scripts/classify-commit-outcome.sh
|
|
4
4
|
#
|
|
5
5
|
# Deterministic classifier backing `/dev-done` (story E42_S04, task
|
|
6
6
|
# E42_S04_T01). `/dev-done` chains `/commit <scope-id>` then `/self-sync`,
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
# there was nothing to commit. Per CLAUDE.md's "Skill Implementation
|
|
9
9
|
# Principle — Scripts Over Inline Logic", that halt-vs-proceed check is a
|
|
10
10
|
# deterministic, repeatable text match — it does not belong as inline
|
|
11
|
-
# conditional logic in `skills/dev-done/SKILL.md`, so it lives here instead,
|
|
11
|
+
# conditional logic in `skills/j-dev-done/SKILL.md`, so it lives here instead,
|
|
12
12
|
# the same way `skills/self-sync/SKILL.md` delegates its own filesystem work
|
|
13
13
|
# to `skills/self-sync/scripts/run.js` rather than inlining it.
|
|
14
14
|
#
|
|
@@ -39,8 +39,8 @@
|
|
|
39
39
|
# The text `/commit` produced is passed either as the single argument, or
|
|
40
40
|
# (when no argument is given) read from stdin in full, e.g.:
|
|
41
41
|
#
|
|
42
|
-
# skills/dev-done/scripts/classify-commit-outcome.sh <<< "$COMMIT_OUTPUT"
|
|
43
|
-
# printf '%s' "$COMMIT_OUTPUT" | skills/dev-done/scripts/classify-commit-outcome.sh
|
|
42
|
+
# skills/j-dev-done/scripts/classify-commit-outcome.sh <<< "$COMMIT_OUTPUT"
|
|
43
|
+
# printf '%s' "$COMMIT_OUTPUT" | skills/j-dev-done/scripts/classify-commit-outcome.sh
|
|
44
44
|
#
|
|
45
45
|
# ---------------------------------------------------------------------------
|
|
46
46
|
# OUTPUT CONTRACT (stdout, single line, nothing else)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: j
|
|
3
|
-
description: Distribute Jenga AI framework files from this private monorepo to one or more consuming projects via the local filesystem. Manages release type selection, version bumping, dry-run preview, per-target file copy, and a post-distribution git commit.
|
|
2
|
+
name: j.distribute
|
|
3
|
+
description: Polyfill alias of the distribute skill under a collision-safe directory name. Identical behavior to /distribute — Distribute Jenga AI framework files from this private monorepo to one or more consuming projects via the local filesystem. Manages release type selection, version bumping, dry-run preview, per-target file copy, and a post-distribution git commit. Use when the bare /distribute form is shadowed by another tool's own built-in command of the same name.
|
|
4
4
|
keywords:
|
|
5
5
|
- distribute
|
|
6
6
|
- private distribution
|
|
@@ -8,14 +8,21 @@ keywords:
|
|
|
8
8
|
- framework update
|
|
9
9
|
- version bump
|
|
10
10
|
- distribute to projects
|
|
11
|
+
- j-distribute
|
|
12
|
+
- polyfill
|
|
11
13
|
examples:
|
|
12
14
|
- "/distribute"
|
|
13
15
|
- "/distribute /path/to/consuming-project"
|
|
14
16
|
- "/distribute --dry-run"
|
|
17
|
+
- "j-distribute"
|
|
15
18
|
---
|
|
16
19
|
|
|
17
20
|
# Distribute
|
|
18
21
|
|
|
22
|
+
This skill is a literal-directory-name duplicate of `skills/distribute/`. It exists so that `/j-distribute` (and `j.j-distribute`) give a guaranteed-unshadowed way to reach the same flow as `/distribute`, even if a host tool's own built-in command of the same name would otherwise shadow or override the bare `/distribute` alias (Claude Code's native skill resolution is a literal-string, directory-name-based match — see `docs/skill-authoring.md`'s "Invocation Convention").
|
|
23
|
+
|
|
24
|
+
This file is generated/synced by `scripts/generate-j-alias.sh distribute` from `skills/distribute/SKILL.md` — do not hand-edit it; re-run the generator instead to pick up source changes.
|
|
25
|
+
|
|
19
26
|
Copies Jenga AI framework files from this monorepo to all active consuming projects registered in `distribute.config.json`. Manages the full version lifecycle: release type selection, `package.json` version bump, dry-run preview, per-target file copy, and a final git commit of the version bump.
|
|
20
27
|
|
|
21
28
|
Distinct from `/self-sync` (which mirrors root → in-repo `.claude/.agents/`) and `/mirror-public` (which syncs to the public GitHub repo). Do not call either of those skills from within this flow.
|
|
@@ -60,7 +67,7 @@ Read `distribute.config.json`.
|
|
|
60
67
|
For each entry in `targets`:
|
|
61
68
|
- If `active` is `false`: print `Skipping <name> — inactive.` Do not include it in the distribution run.
|
|
62
69
|
- If the `path` does not exist on disk: print `Skipping <name> — path not found: <path>.` Do not include it in the distribution run.
|
|
63
|
-
- If release type is `amend`: run `bash skills/distribute/scripts/check-version.sh <path>`.
|
|
70
|
+
- If release type is `amend`: run `bash skills/j-distribute/scripts/check-version.sh <path>`.
|
|
64
71
|
- Exit 0 → include the target.
|
|
65
72
|
- Exit 1 → print `Skipping <name> — already up to date.` Do not include it in the distribution run (record it in the final report as "already up to date").
|
|
66
73
|
- Exit 2 → print `Skipping <name> — invalid path or config.` Do not include it.
|
|
@@ -87,7 +94,7 @@ On success, read the new version from `package.json` and print: `Version bumped
|
|
|
87
94
|
For each eligible target (from Step 3), run:
|
|
88
95
|
|
|
89
96
|
```bash
|
|
90
|
-
bash skills/distribute/scripts/distribute-changes.sh <project_path> --dry-run
|
|
97
|
+
bash skills/j-distribute/scripts/distribute-changes.sh <project_path> --dry-run
|
|
91
98
|
```
|
|
92
99
|
|
|
93
100
|
Display the full output for each target. Then ask the user:
|
|
@@ -101,7 +108,7 @@ Wait for confirmation. If the user does not confirm, halt without making any cha
|
|
|
101
108
|
For each eligible target in sequence:
|
|
102
109
|
|
|
103
110
|
```bash
|
|
104
|
-
bash skills/distribute/scripts/distribute-changes.sh <project_path>
|
|
111
|
+
bash skills/j-distribute/scripts/distribute-changes.sh <project_path>
|
|
105
112
|
```
|
|
106
113
|
|
|
107
114
|
Record the exit code and any output. If a target fails (non-zero exit), record the failure and continue to the next target. Do not abort the run on partial failure.
|
|
@@ -129,7 +136,7 @@ Skip this step for `amend`. Skip this step if no targets succeeded in Step 6.
|
|
|
129
136
|
Call:
|
|
130
137
|
|
|
131
138
|
```bash
|
|
132
|
-
bash skills/distribute/scripts/commit-version-bump.sh
|
|
139
|
+
bash skills/j-distribute/scripts/commit-version-bump.sh
|
|
133
140
|
```
|
|
134
141
|
|
|
135
142
|
Report the resulting commit SHA to the user.
|
|
@@ -144,15 +151,15 @@ Do not invoke `/self-sync` or `/mirror-public` at any point in this flow. They a
|
|
|
144
151
|
|
|
145
152
|
| Script | Purpose |
|
|
146
153
|
|--------|---------|
|
|
147
|
-
| `skills/distribute/scripts/distribute-changes.sh <path> [--dry-run]` | Copy framework files to a single consuming project |
|
|
148
|
-
| `skills/distribute/scripts/commit-version-bump.sh` | Commit the `package.json` version bump |
|
|
149
|
-
| `skills/distribute/scripts/check-version.sh <path>` | Amend mode: exits 0 if target needs update, 1 if up to date, 2 if invalid |
|
|
154
|
+
| `skills/j-distribute/scripts/distribute-changes.sh <path> [--dry-run]` | Copy framework files to a single consuming project |
|
|
155
|
+
| `skills/j-distribute/scripts/commit-version-bump.sh` | Commit the `package.json` version bump |
|
|
156
|
+
| `skills/j-distribute/scripts/check-version.sh <path>` | Amend mode: exits 0 if target needs update, 1 if up to date, 2 if invalid |
|
|
150
157
|
|
|
151
158
|
## Config
|
|
152
159
|
|
|
153
160
|
`distribute.config.json` at the repo root is the registry of consuming projects.
|
|
154
161
|
|
|
155
|
-
Schema reference: `skills/distribute/CONFIG_SCHEMA.md`
|
|
162
|
+
Schema reference: `skills/j-distribute/CONFIG_SCHEMA.md`
|
|
156
163
|
|
|
157
164
|
Each target entry:
|
|
158
165
|
|
|
@@ -45,7 +45,7 @@ dry_run() { echo "[DRY RUN] $*"; }
|
|
|
45
45
|
|
|
46
46
|
# ---------------------------------------------------------------------------
|
|
47
47
|
# Resolve monorepo root from this script's location.
|
|
48
|
-
# Script lives at: skills/distribute/scripts/distribute-changes.sh
|
|
48
|
+
# Script lives at: skills/j-distribute/scripts/distribute-changes.sh
|
|
49
49
|
# Repo root is three levels up.
|
|
50
50
|
# ---------------------------------------------------------------------------
|
|
51
51
|
|
|
@@ -1,21 +1,28 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: j
|
|
3
|
-
description: Execute tasks from the scrum board. Reads from project/todo.md, resolves each entry to its full scrum board context, and drives the developer agent through implementation with the correct sender object and communication contract. Loops until all selected tasks are done or the user exits.
|
|
2
|
+
name: j.do
|
|
3
|
+
description: Polyfill alias of the do skill under a collision-safe directory name. Identical behavior to /do — Execute tasks from the scrum board. Reads from project/todo.md, resolves each entry to its full scrum board context, and drives the developer agent through implementation with the correct sender object and communication contract. Loops until all selected tasks are done or the user exits. Use when the bare /do form is shadowed by another tool's own built-in command of the same name.
|
|
4
4
|
keywords:
|
|
5
5
|
- do
|
|
6
6
|
- execute
|
|
7
7
|
- implement
|
|
8
8
|
- work on
|
|
9
9
|
- build
|
|
10
|
+
- j-do
|
|
11
|
+
- polyfill
|
|
10
12
|
examples:
|
|
11
13
|
- "implement the login feature"
|
|
12
14
|
- "work on the API endpoint"
|
|
15
|
+
- "j-do"
|
|
13
16
|
metadata:
|
|
14
17
|
prefered_agent: developer
|
|
15
18
|
---
|
|
16
19
|
|
|
17
20
|
# Do — Execute Scrum Board Tasks
|
|
18
21
|
|
|
22
|
+
This skill is a literal-directory-name duplicate of `skills/do/`. It exists so that `/j-do` (and `j.j-do`) give a guaranteed-unshadowed way to reach the same flow as `/do`, even if a host tool's own built-in command of the same name would otherwise shadow or override the bare `/do` alias (Claude Code's native skill resolution is a literal-string, directory-name-based match — see `docs/skill-authoring.md`'s "Invocation Convention").
|
|
23
|
+
|
|
24
|
+
This file is generated/synced by `scripts/generate-j-alias.sh do` from `skills/do/SKILL.md` — do not hand-edit it; re-run the generator instead to pick up source changes.
|
|
25
|
+
|
|
19
26
|
## `--trivial` Flag
|
|
20
27
|
|
|
21
28
|
**Syntax:** `/do <id> --trivial` — a dispatch-time override, distinct from `/todo --trivial` (a creation-time flag documented in `skills/todo/SKILL.md`). Where `/todo --trivial` writes a brand-new task straight to `execution_scope: inline`, `/do <id> --trivial` overrides an **already-existing** task's `execution_scope` — whatever it currently is, including absent (legacy tasks with no execution-scope fields at all) — to `inline` at the moment it's dispatched. See `### 4.1.5. \`--trivial\` Dispatch-Time Override` below for the full mechanics.
|
|
@@ -174,7 +181,7 @@ After acquiring the epic lock and before writing the bundle manifest, scan all o
|
|
|
174
181
|
|
|
175
182
|
1. **Extract expected files** from the task's frontmatter field `scope_rationale` and from the task's `## Description` section. Use a best-effort prose heuristic: split the text on whitespace and punctuation, then retain any token that either (a) contains a `/` character or (b) matches the pattern `*.*` (a dot surrounded by non-dot characters on both sides, e.g. `SKILL.md`, `foo.json`). Collect all retained tokens into a set called `expected_files`. This is intentionally permissive — false positives (expected files that were never actually changed) are acceptable and produce no report.
|
|
176
183
|
|
|
177
|
-
2. **Compute unexpected files**: let `actual_files` = the array stored at `task_changed_files[<task_id>]` in the bundle manifest (from step c.1). Compute `unexpected = actual_files − expected_files` (set difference: files in `actual_files` that have no match in `expected_files`). Matching is case-sensitive and exact against the relative path or the basename of the path — a token like `SKILL.md` matches any actual file whose basename is `SKILL.md` (e.g. `skills/do/SKILL.md`).
|
|
184
|
+
2. **Compute unexpected files**: let `actual_files` = the array stored at `task_changed_files[<task_id>]` in the bundle manifest (from step c.1). Compute `unexpected = actual_files − expected_files` (set difference: files in `actual_files` that have no match in `expected_files`). Matching is case-sensitive and exact against the relative path or the basename of the path — a token like `SKILL.md` matches any actual file whose basename is `SKILL.md` (e.g. `skills/j-do/SKILL.md`).
|
|
178
185
|
|
|
179
186
|
3. **If `unexpected` is non-empty**:
|
|
180
187
|
a. Write a Markdown conflict report to `project/queue/conflict-<task_id>.md` with the following structure:
|
|
@@ -485,7 +492,7 @@ After the developer agent returns (or after inline execution completes), run the
|
|
|
485
492
|
|
|
486
493
|
2. Run `git diff --name-only HEAD~1` to retrieve the list of changed file names (relative paths, one per line).
|
|
487
494
|
|
|
488
|
-
3. Read the prompt template from `skills/do/assets/intent-vs-diff-prompt.md`. Extract the prompt block (the content between the triple backticks under `## Prompt`).
|
|
495
|
+
3. Read the prompt template from `skills/j-do/assets/intent-vs-diff-prompt.md`. Extract the prompt block (the content between the triple backticks under `## Prompt`).
|
|
489
496
|
|
|
490
497
|
4. Substitute the placeholders:
|
|
491
498
|
- `{description}` — full text of the task's `## Description` section
|
|
@@ -507,7 +514,7 @@ After the developer agent returns (or after inline execution completes), run the
|
|
|
507
514
|
|
|
508
515
|
**This check is non-blocking.** It does not change the task's Passed/Failed outcome. It only writes `divergence_flag: true` and emits a warning for human review. Execution continues regardless of the check result.
|
|
509
516
|
|
|
510
|
-
**Prompt calibration:** The prompt in `skills/do/assets/intent-vs-diff-prompt.md` is tuned to flag only files with zero plausible connection to the stated task. Test files, documentation files, lock files, and clearly implied files are excluded from flagging. See the `## False-Positive Tuning Rationale` section in the prompt template for full details.
|
|
517
|
+
**Prompt calibration:** The prompt in `skills/j-do/assets/intent-vs-diff-prompt.md` is tuned to flag only files with zero plausible connection to the stated task. Test files, documentation files, lock files, and clearly implied files are excluded from flagging. See the `## False-Positive Tuning Rationale` section in the prompt template for full details.
|
|
511
518
|
|
|
512
519
|
### 6. Verify documentation
|
|
513
520
|
After the developer completes the task, confirm the following documentation was written:
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
/doc
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
When no target is provided, `/doc` resolves the default target from `skills/doc/assets/path-objectives.yaml`. Today that default is `README.md`.
|
|
13
|
+
When no target is provided, `/doc` resolves the default target from `skills/j-doc/assets/path-objectives.yaml`. Today that default is `README.md`.
|
|
14
14
|
|
|
15
15
|
Expected flow:
|
|
16
16
|
1. Resolve `README.md`
|
|
@@ -32,11 +32,11 @@ Accepted convenience form:
|
|
|
32
32
|
/doc update: docs/API.md
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
Both forms resolve `docs/API.md`, then apply the matching rule from `skills/doc/assets/path-objectives.yaml`.
|
|
35
|
+
Both forms resolve `docs/API.md`, then apply the matching rule from `skills/j-doc/assets/path-objectives.yaml`.
|
|
36
36
|
|
|
37
37
|
## Target Resolution and Objective Rules
|
|
38
38
|
|
|
39
|
-
`skills/doc/assets/path-objectives.yaml` is the source of truth for:
|
|
39
|
+
`skills/j-doc/assets/path-objectives.yaml` is the source of truth for:
|
|
40
40
|
- the default target
|
|
41
41
|
- known target paths
|
|
42
42
|
- each path's documentation objective
|
|
@@ -97,7 +97,7 @@ Typical failure modes:
|
|
|
97
97
|
|
|
98
98
|
## Ambiguity Gate
|
|
99
99
|
|
|
100
|
-
If the resolved target path is not present in `skills/doc/assets/path-objectives.yaml`, `/doc` must not guess.
|
|
100
|
+
If the resolved target path is not present in `skills/j-doc/assets/path-objectives.yaml`, `/doc` must not guess.
|
|
101
101
|
|
|
102
102
|
It should stop and ask exactly:
|
|
103
103
|
|
|
@@ -149,7 +149,7 @@ Avoid annotations when the work has no documentation impact.
|
|
|
149
149
|
## Maintainer Checklist
|
|
150
150
|
|
|
151
151
|
Before relying on `/doc`, confirm that:
|
|
152
|
-
1. the target path exists in `skills/doc/assets/path-objectives.yaml`, or you are prepared to answer the ambiguity prompt
|
|
152
|
+
1. the target path exists in `skills/j-doc/assets/path-objectives.yaml`, or you are prepared to answer the ambiguity prompt
|
|
153
153
|
2. relevant board items include accurate `docs: [...]` annotations
|
|
154
154
|
3. higher-priority evidence sources are up to date
|
|
155
155
|
4. any existing target file content that should survive regeneration is genuinely still valid
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: j
|
|
3
|
-
description: Generate or update a documentation file by resolving a target path to a clear documentation objective before writing.
|
|
2
|
+
name: j.doc
|
|
3
|
+
description: Polyfill alias of the doc skill under a collision-safe directory name. Identical behavior to /doc — Generate or update a documentation file by resolving a target path to a clear documentation objective before writing. Use when the bare /doc form is shadowed by another tool's own built-in command of the same name.
|
|
4
4
|
metadata:
|
|
5
5
|
prefered_agent: developer
|
|
6
6
|
keywords:
|
|
@@ -9,16 +9,23 @@ keywords:
|
|
|
9
9
|
- write docs
|
|
10
10
|
- generate docs
|
|
11
11
|
- update docs
|
|
12
|
+
- j-doc
|
|
13
|
+
- polyfill
|
|
12
14
|
examples:
|
|
13
15
|
- "/doc"
|
|
14
16
|
- "/doc docs/API.md"
|
|
15
17
|
- "/doc update: docs/API.md"
|
|
16
18
|
- "generate documentation for the CLI"
|
|
17
19
|
- "update the contributing guide"
|
|
20
|
+
- "j-doc"
|
|
18
21
|
---
|
|
19
22
|
|
|
20
23
|
# Doc — Documentation Synthesis and Regeneration
|
|
21
24
|
|
|
25
|
+
This skill is a literal-directory-name duplicate of `skills/doc/`. It exists so that `/j-doc` (and `j.j-doc`) give a guaranteed-unshadowed way to reach the same flow as `/doc`, even if a host tool's own built-in command of the same name would otherwise shadow or override the bare `/doc` alias (Claude Code's native skill resolution is a literal-string, directory-name-based match — see `docs/skill-authoring.md`'s "Invocation Convention").
|
|
26
|
+
|
|
27
|
+
This file is generated/synced by `scripts/generate-j-alias.sh doc` from `skills/doc/SKILL.md` — do not hand-edit it; re-run the generator instead to pick up source changes.
|
|
28
|
+
|
|
22
29
|
## Input Format
|
|
23
30
|
|
|
24
31
|
```text
|
|
@@ -32,9 +39,9 @@ examples:
|
|
|
32
39
|
|
|
33
40
|
## Reference Asset
|
|
34
41
|
|
|
35
|
-
Load `skills/doc/assets/path-objectives.yaml` before resolving the documentation objective. Treat it as the source of truth for the `default_target`, known target paths, and their structural requirements.
|
|
42
|
+
Load `skills/j-doc/assets/path-objectives.yaml` before resolving the documentation objective. Treat it as the source of truth for the `default_target`, known target paths, and their structural requirements.
|
|
36
43
|
|
|
37
|
-
For extended usage guidance, provenance notes, and board-author tips, see `skills/doc/README.md`.
|
|
44
|
+
For extended usage guidance, provenance notes, and board-author tips, see `skills/j-doc/README.md`.
|
|
38
45
|
|
|
39
46
|
## Synthesis Context Contract
|
|
40
47
|
|
|
@@ -73,7 +80,7 @@ If the shared collector from E24_S03 is not yet merged, construct a temporary co
|
|
|
73
80
|
|
|
74
81
|
### 1. Parse the target path
|
|
75
82
|
|
|
76
|
-
1. Read `default_target` from `skills/doc/assets/path-objectives.yaml`. If it is missing, fall back to `README.md`.
|
|
83
|
+
1. Read `default_target` from `skills/j-doc/assets/path-objectives.yaml`. If it is missing, fall back to `README.md`.
|
|
77
84
|
2. Remove the `/doc` command token from the invocation.
|
|
78
85
|
3. Trim the remaining text.
|
|
79
86
|
4. If the trimmed remainder starts with the exact prefix `update:`, remove that prefix and trim the remainder again.
|
|
@@ -88,7 +95,7 @@ Examples:
|
|
|
88
95
|
|
|
89
96
|
### 2. Resolve the objective from the rule table
|
|
90
97
|
|
|
91
|
-
1. Read `skills/doc/assets/path-objectives.yaml`.
|
|
98
|
+
1. Read `skills/j-doc/assets/path-objectives.yaml`.
|
|
92
99
|
2. Find an entry whose `path` exactly matches `target_path`.
|
|
93
100
|
3. If a match exists, set:
|
|
94
101
|
- `objective` to the entry's `objective`
|
|
@@ -113,7 +120,7 @@ If the matched rule includes section guidance, carry it forward as constraints f
|
|
|
113
120
|
|
|
114
121
|
### 4. Ambiguity gate for unknown targets
|
|
115
122
|
|
|
116
|
-
If `target_path` is not present in `skills/doc/assets/path-objectives.yaml`:
|
|
123
|
+
If `target_path` is not present in `skills/j-doc/assets/path-objectives.yaml`:
|
|
117
124
|
|
|
118
125
|
- Ask the user exactly: `What should <target_path> document? Please describe the objective.`
|
|
119
126
|
- Do **not** guess the objective.
|
|
@@ -145,7 +152,7 @@ If the target file does not exist, keep `existing_intent = null`.
|
|
|
145
152
|
|
|
146
153
|
### 7. Resolve `last_update` provenance before writing
|
|
147
154
|
|
|
148
|
-
1. Run `python3 skills/doc/scripts/resolve_last_update.py <target_path>` from the repository root.
|
|
155
|
+
1. Run `python3 skills/j-doc/scripts/resolve_last_update.py <target_path>` from the repository root.
|
|
149
156
|
2. The resolver must scan `project/board/epics/`, `project/board/stories/`, and `project/board/tasks/`.
|
|
150
157
|
3. Treat a board item as provenance only when all of the following are true:
|
|
151
158
|
- `status` is exactly `Done` or `Passed`
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
`/doc` writes a `last_update` frontmatter field at the top of generated documentation files. That value is derived from completed scrum-board items that explicitly declare they affected the target document.
|
|
6
6
|
|
|
7
|
-
The resolver is `skills/doc/scripts/resolve_last_update.py`. It scans:
|
|
7
|
+
The resolver is `skills/j-doc/scripts/resolve_last_update.py`. It scans:
|
|
8
8
|
|
|
9
9
|
- `project/board/epics/`
|
|
10
10
|
- `project/board/stories/`
|
|
@@ -1,18 +1,25 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: j
|
|
3
|
-
description: Compare the current state of a project with its documentation and update documentation to reflect changes. Accepts `update:`, `source:`, `exclude:`, and `minify:` arguments to control scope. Use when documentation may be out of date with implementation, or when the user asks to sync, refresh, update, or shrink docs.
|
|
2
|
+
name: j.doc-sync
|
|
3
|
+
description: Polyfill alias of the doc-sync skill under a collision-safe directory name. Identical behavior to /doc-sync — Compare the current state of a project with its documentation and update documentation to reflect changes. Accepts `update:`, `source:`, `exclude:`, and `minify:` arguments to control scope. Use when documentation may be out of date with implementation, or when the user asks to sync, refresh, update, or shrink docs. Use when the bare /doc-sync form is shadowed by another tool's own built-in command of the same name.
|
|
4
4
|
keywords:
|
|
5
5
|
- doc-sync
|
|
6
6
|
- documentation
|
|
7
7
|
- update docs
|
|
8
8
|
- sync docs
|
|
9
|
+
- j-doc-sync
|
|
10
|
+
- polyfill
|
|
9
11
|
examples:
|
|
10
12
|
- "update the documentation"
|
|
11
13
|
- "sync docs with current state"
|
|
14
|
+
- "j-doc-sync"
|
|
12
15
|
---
|
|
13
16
|
|
|
14
17
|
# Doc-Sync — Keep Documentation in Sync with the Codebase
|
|
15
18
|
|
|
19
|
+
This skill is a literal-directory-name duplicate of `skills/doc-sync/`. It exists so that `/j-doc-sync` (and `j.j-doc-sync`) give a guaranteed-unshadowed way to reach the same flow as `/doc-sync`, even if a host tool's own built-in command of the same name would otherwise shadow or override the bare `/doc-sync` alias (Claude Code's native skill resolution is a literal-string, directory-name-based match — see `docs/skill-authoring.md`'s "Invocation Convention").
|
|
20
|
+
|
|
21
|
+
This file is generated/synced by `scripts/generate-j-alias.sh doc-sync` from `skills/doc-sync/SKILL.md` — do not hand-edit it; re-run the generator instead to pick up source changes.
|
|
22
|
+
|
|
16
23
|
## What this skill does
|
|
17
24
|
|
|
18
25
|
Analyses project source files, compares them against existing documentation, and updates any documentation that is stale, incomplete, or missing. Can be scoped with arguments to focus on specific files or exclude noise.
|
|
@@ -1,21 +1,28 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: j
|
|
3
|
-
description: Parallel execution orchestrator. Calls /do to start implementations via sub-agents, then loops back to the board to identify and offer parallelisable tasks until the user selects "Done".
|
|
2
|
+
name: j.dooo
|
|
3
|
+
description: Polyfill alias of the dooo skill under a collision-safe directory name. Identical behavior to /dooo — Parallel execution orchestrator. Calls /do to start implementations via sub-agents, then loops back to the board to identify and offer parallelisable tasks until the user selects "Done". Use when the bare /dooo form is shadowed by another tool's own built-in command of the same name.
|
|
4
4
|
keywords:
|
|
5
5
|
- dooo
|
|
6
6
|
- parallel
|
|
7
7
|
- batch
|
|
8
8
|
- multiple tasks
|
|
9
9
|
- orchestrate
|
|
10
|
+
- j-dooo
|
|
11
|
+
- polyfill
|
|
10
12
|
examples:
|
|
11
13
|
- "run all pending tasks in parallel"
|
|
12
14
|
- "execute multiple tasks at once"
|
|
15
|
+
- "j-dooo"
|
|
13
16
|
metadata:
|
|
14
17
|
prefered_agent: scrum-master
|
|
15
18
|
---
|
|
16
19
|
|
|
17
20
|
# Dooo — Parallel Execution Orchestrator
|
|
18
21
|
|
|
22
|
+
This skill is a literal-directory-name duplicate of `skills/dooo/`. It exists so that `/j-dooo` (and `j.j-dooo`) give a guaranteed-unshadowed way to reach the same flow as `/dooo`, even if a host tool's own built-in command of the same name would otherwise shadow or override the bare `/dooo` alias (Claude Code's native skill resolution is a literal-string, directory-name-based match — see `docs/skill-authoring.md`'s "Invocation Convention").
|
|
23
|
+
|
|
24
|
+
This file is generated/synced by `scripts/generate-j-alias.sh dooo` from `skills/dooo/SKILL.md` — do not hand-edit it; re-run the generator instead to pick up source changes.
|
|
25
|
+
|
|
19
26
|
## Instructions
|
|
20
27
|
|
|
21
28
|
### 1. Invoke `/do`
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: j.error
|
|
3
|
+
description: Polyfill alias of the error skill under a collision-safe directory name. Identical behavior to /error — Guided troubleshooting flow that gathers context about an error — where it occurs, what was attempted, what went wrong, and what was expected. Use when the bare /error form is shadowed by another tool's own built-in command of the same name.
|
|
4
|
+
keywords:
|
|
5
|
+
- error
|
|
6
|
+
- bug
|
|
7
|
+
- fix
|
|
8
|
+
- troubleshoot
|
|
9
|
+
- debug
|
|
10
|
+
- broken
|
|
11
|
+
- j-error
|
|
12
|
+
- polyfill
|
|
13
|
+
examples:
|
|
14
|
+
- "I'm getting an error"
|
|
15
|
+
- "help me fix this bug"
|
|
16
|
+
- "j-error"
|
|
17
|
+
metadata:
|
|
18
|
+
prefered_agent: tester
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Error — Guided Troubleshooting
|
|
22
|
+
|
|
23
|
+
This skill is a literal-directory-name duplicate of `skills/error/`. It exists so that `/j-error` (and `j.j-error`) give a guaranteed-unshadowed way to reach the same flow as `/error`, even if a host tool's own built-in command of the same name would otherwise shadow or override the bare `/error` alias (Claude Code's native skill resolution is a literal-string, directory-name-based match — see `docs/skill-authoring.md`'s "Invocation Convention").
|
|
24
|
+
|
|
25
|
+
This file is generated/synced by `scripts/generate-j-alias.sh error` from `skills/error/SKILL.md` — do not hand-edit it; re-run the generator instead to pick up source changes.
|
|
26
|
+
|
|
27
|
+
## Instructions
|
|
28
|
+
|
|
29
|
+
Ask the following questions to understand the background of the error:
|
|
30
|
+
|
|
31
|
+
1. Where does the error occur?
|
|
32
|
+
2. What are you trying to do?
|
|
33
|
+
3. What went wrong?
|
|
34
|
+
4. What was the expected outcome?
|
|
35
|
+
|
|
36
|
+
Then use the answers to investigate and resolve the issue by creating a issue using the /todo skill.
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: j
|
|
3
|
-
description: Analyzes example files against a target goal and produces a structured evaluation rapport.
|
|
2
|
+
name: j.evaluate
|
|
3
|
+
description: Polyfill alias of the evaluate skill under a collision-safe directory name. Identical behavior to /evaluate — Analyzes example files against a target goal and produces a structured evaluation rapport. Use when the bare /evaluate form is shadowed by another tool's own built-in command of the same name.
|
|
4
|
+
keywords:
|
|
5
|
+
- j-evaluate
|
|
6
|
+
- polyfill
|
|
4
7
|
---
|
|
5
8
|
|
|
6
9
|
# Evaluate
|
|
7
10
|
|
|
11
|
+
This skill is a literal-directory-name duplicate of `skills/evaluate/`. It exists so that `/j-evaluate` (and `j.j-evaluate`) give a guaranteed-unshadowed way to reach the same flow as `/evaluate`, even if a host tool's own built-in command of the same name would otherwise shadow or override the bare `/evaluate` alias (Claude Code's native skill resolution is a literal-string, directory-name-based match — see `docs/skill-authoring.md`'s "Invocation Convention").
|
|
12
|
+
|
|
13
|
+
This file is generated/synced by `scripts/generate-j-alias.sh evaluate` from `skills/evaluate/SKILL.md` — do not hand-edit it; re-run the generator instead to pick up source changes.
|
|
14
|
+
|
|
8
15
|
## Input
|
|
9
16
|
|
|
10
17
|
Expects a filled `eval_invokation_template.yml` with:
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: j.examplify
|
|
3
|
+
description: Polyfill alias of the examplify skill under a collision-safe directory name. Identical behavior to /examplify — Explains concepts, features, use cases, and patterns based on provided context — a description, scenario, code snippet, or file. Use when the user wants to understand what something is, how it works, when to use it, or wants a concrete example. Use when the bare /examplify form is shadowed by another tool's own built-in command of the same name.
|
|
4
|
+
keywords:
|
|
5
|
+
- examplify
|
|
6
|
+
- explain
|
|
7
|
+
- example
|
|
8
|
+
- how does
|
|
9
|
+
- understand
|
|
10
|
+
- j-examplify
|
|
11
|
+
- polyfill
|
|
12
|
+
examples:
|
|
13
|
+
- "explain how this works"
|
|
14
|
+
- "give me an example of X"
|
|
15
|
+
- "j-examplify"
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Concept Explainer
|
|
19
|
+
|
|
20
|
+
This skill is a literal-directory-name duplicate of `skills/examplify/`. It exists so that `/j-examplify` (and `j.j-examplify`) give a guaranteed-unshadowed way to reach the same flow as `/examplify`, even if a host tool's own built-in command of the same name would otherwise shadow or override the bare `/examplify` alias (Claude Code's native skill resolution is a literal-string, directory-name-based match — see `docs/skill-authoring.md`'s "Invocation Convention").
|
|
21
|
+
|
|
22
|
+
This file is generated/synced by `scripts/generate-j-alias.sh examplify` from `skills/examplify/SKILL.md` — do not hand-edit it; re-run the generator instead to pick up source changes.
|
|
23
|
+
|
|
24
|
+
## Instructions
|
|
25
|
+
|
|
26
|
+
If the context is unclear or too broad, ask one focused clarifying question before proceeding. Otherwise, infer and proceed.
|
|
27
|
+
|
|
28
|
+
Explain the concept by covering:
|
|
29
|
+
|
|
30
|
+
1. **What it is** — a plain-language definition
|
|
31
|
+
2. **Why it exists** — the problem it solves
|
|
32
|
+
3. **How it works** — core mechanics
|
|
33
|
+
4. **When to use it** — and when not to
|
|
34
|
+
5. **Example(s)** — grounded in the user's context; show a before/after when relevant
|
|
35
|
+
|
|
36
|
+
After delivering the explanation, save a copy to:
|
|
37
|
+
`project/documentation/examples/<concept_and_context>.md`
|
|
38
|
+
|
|
39
|
+
Derive the filename from the concept + context (lowercased, hyphenated). Tell the user where the file was saved.
|
|
40
|
+
|
|
41
|
+
## Follow-up
|
|
42
|
+
|
|
43
|
+
If further discussion reveals new information about the topic — a new use case, correction, or better example — ask the user:
|
|
44
|
+
|
|
45
|
+
> "That adds something new to what we covered — want me to update the saved file?"
|
|
46
|
+
1. Yes
|
|
47
|
+
2. No
|
|
48
|
+
|
|
49
|
+
If yes, append the new content under an `## Additional Notes` section. Do not overwrite the original.
|
|
@@ -1,19 +1,26 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: j
|
|
3
|
-
description: List all available skills with a short description of what each one does. Also use this skill when the user wants to know what commands or skills are available in the project.
|
|
2
|
+
name: j.help
|
|
3
|
+
description: Polyfill alias of the help skill under a collision-safe directory name. Identical behavior to /help — List all available skills with a short description of what each one does. Also use this skill when the user wants to know what commands or skills are available in the project. Use when the bare /help form is shadowed by another tool's own built-in command of the same name.
|
|
4
4
|
keywords:
|
|
5
5
|
- help
|
|
6
6
|
- skills
|
|
7
7
|
- commands
|
|
8
8
|
- what can you do
|
|
9
9
|
- list skills
|
|
10
|
+
- j-help
|
|
11
|
+
- polyfill
|
|
10
12
|
examples:
|
|
11
13
|
- "what skills are available?"
|
|
12
14
|
- "show me all commands"
|
|
15
|
+
- "j-help"
|
|
13
16
|
---
|
|
14
17
|
|
|
15
18
|
# Help — List Available Skills
|
|
16
19
|
|
|
20
|
+
This skill is a literal-directory-name duplicate of `skills/help/`. It exists so that `/j-help` (and `j.j-help`) give a guaranteed-unshadowed way to reach the same flow as `/help`, even if a host tool's own built-in command of the same name would otherwise shadow or override the bare `/help` alias (Claude Code's native skill resolution is a literal-string, directory-name-based match — see `docs/skill-authoring.md`'s "Invocation Convention").
|
|
21
|
+
|
|
22
|
+
This file is generated/synced by `scripts/generate-j-alias.sh help` from `skills/help/SKILL.md` — do not hand-edit it; re-run the generator instead to pick up source changes.
|
|
23
|
+
|
|
17
24
|
## Instructions
|
|
18
25
|
|
|
19
26
|
List all available skills (from the current skill list) with a short description of what each one does. Format the output as a table with columns for the slash command and its description.
|