@jenga-ai/agent 3.6.0 → 4.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 +32 -1
- package/lib/generate-skill-allow-list.js +42 -5
- package/lib/skill-allow-list.json +1 -1
- package/package.json +1 -2
- package/project/app/api/lib/resolve-project-root.js +1 -1
- package/project/app/api/scripts/capture-snapshot.js +12 -7
- package/project/app/package.json +4 -0
- package/project/app/ui/dist/assets/index-BADc5mmH.css +1 -0
- package/project/app/ui/dist/assets/index-DX2pfTAW.js +104 -0
- package/project/app/ui/dist/index.html +2 -2
- package/scripts/acquire-concurrency-slot.sh +34 -4
- package/scripts/apply-j-prefix.sh +1 -1
- package/scripts/delete-bare-skill-dirs.sh +1 -2
- package/scripts/idea_manager.sh +16 -1
- package/scripts/release-concurrency-slot.sh +34 -4
- package/scripts/render-ranked-list.sh +270 -0
- package/scripts/repoint-dead-bare-path-prose.py +81 -0
- package/scripts/rewrite-stale-skill-preambles.py +188 -0
- package/scripts/strip-polyfill-frontmatter.py +166 -0
- package/scripts/todo_manager.sh +16 -1
- package/scripts/validate-typed-object.sh +750 -0
- package/scripts/verify-postinstall-reconcile.sh +33 -7
- package/skills/index/scripts/board_index.py +29 -1
- package/skills/j-brainstorm/SKILL.md +3 -4
- package/skills/j-btw/SKILL.md +3 -4
- package/skills/j-clearify/SKILL.md +3 -4
- package/skills/j-close-story/SKILL.md +11 -12
- package/skills/j-close-story/scripts/check-story-closeable.sh +11 -4
- package/skills/j-commit/SKILL.md +3 -4
- package/skills/j-continue/SKILL.md +5 -6
- package/skills/j-deep-dive/SKILL.md +3 -4
- package/skills/j-distribute/SKILL.md +3 -4
- package/skills/j-do/SKILL.md +13 -15
- package/skills/j-doc/SKILL.md +3 -4
- package/skills/j-doc/scripts/resolve_last_update.py +27 -1
- package/skills/j-doc-sync/SKILL.md +3 -4
- package/skills/j-dooo/SKILL.md +6 -15
- package/skills/j-error/SKILL.md +3 -4
- package/skills/j-evaluate/SKILL.md +3 -4
- package/skills/j-examplify/SKILL.md +3 -4
- package/skills/j-help/SKILL.md +3 -4
- package/skills/j-idea/SKILL.md +3 -4
- package/skills/j-improve/SKILL.md +3 -4
- package/skills/j-init/SKILL.md +20 -11
- package/skills/j-init/scripts/apply-scaffold-visibility.sh +8 -6
- package/skills/j-jbp/SKILL.md +3 -4
- package/skills/j-lgtm/SKILL.md +3 -4
- package/skills/j-pi-plan/SKILL.md +3 -4
- package/skills/j-proceed/SKILL.md +3 -4
- package/skills/j-publish/SKILL.md +3 -4
- package/skills/j-publish/scripts/run_gates.sh +1 -1
- package/skills/j-reconcile/SKILL.md +38 -5
- package/skills/j-reconcile/assets/report_format.md +11 -0
- package/skills/j-reconcile/scripts/detect-unlinked-code.sh +2 -2
- package/skills/j-reconcile-origin/SKILL.md +3 -4
- package/skills/j-redo/SKILL.md +3 -4
- package/skills/j-skillify/SKILL.md +3 -4
- package/skills/j-spinoff/SKILL.md +3 -4
- package/skills/j-status/SKILL.md +4 -5
- package/skills/j-todo/SKILL.md +42 -5
- package/skills/j-todo/scripts/add_trivial_task.sh +12 -1
- package/skills/j-todo/scripts/argument-is-not-ranked-list.sh +92 -0
- package/skills/j-todo/scripts/argument-is-ranked-list.sh +78 -0
- package/skills/j-uncharted/SKILL.md +251 -12
- package/skills/j-uncharted/scripts/detect-dependencies.sh +79 -21
- package/skills/j-uncharted/scripts/diff-since-baseline.sh +600 -0
- package/skills/j-uncharted/scripts/find-scan-baseline.sh +545 -0
- package/skills/j-uncharted/scripts/run-engine.sh +36 -2
- package/skills/j-uncharted/scripts/write-scan-record.sh +361 -0
- package/skills/j-wtf/SKILL.md +3 -4
- package/skills/jenga/SKILL.md +106 -10
- package/skills/jenga/playbooks/schema.json +4 -4
- package/skills/jenga/scripts/enrich-nl-prompt.sh +225 -0
- package/skills/jenga/scripts/load-nl-catalog.js +6 -3
- package/skills/jenga/scripts/load-playbooks.sh +289 -4
- package/skills/jenga/scripts/match-playbook.sh +6 -5
- package/skills/jenga/scripts/run-playbook-step.sh +270 -3
- package/templates/permission-levels/level-1-locked.json +1 -1
- package/templates/permission-levels/level-2-guarded.json +1 -1
- package/templates/permission-levels/level-3-standard.json +1 -1
- package/templates/permission-levels/level-4-elevated.json +1 -1
- package/templates/permission-levels/level-5-unrestricted.json +1 -1
- package/templates/playbook-types.json +6 -0
- package/project/app/ui/dist/assets/index-BVR_7Owg.css +0 -1
- package/project/app/ui/dist/assets/index-CtU2xLQm.js +0 -104
- package/scripts/audit-twin-divergence.sh +0 -693
|
@@ -5,6 +5,7 @@ from __future__ import annotations
|
|
|
5
5
|
|
|
6
6
|
import argparse
|
|
7
7
|
import json
|
|
8
|
+
import subprocess
|
|
8
9
|
import sys
|
|
9
10
|
from datetime import date
|
|
10
11
|
from pathlib import Path
|
|
@@ -18,6 +19,31 @@ BOARD_DIRS = (
|
|
|
18
19
|
)
|
|
19
20
|
|
|
20
21
|
|
|
22
|
+
def _resolve_project_root() -> Path:
|
|
23
|
+
"""Locate the project root via git, not a fixed relative climb.
|
|
24
|
+
|
|
25
|
+
This script is deployed both at its source location
|
|
26
|
+
(skills/j-doc/scripts/) and mirrored one directory deeper into
|
|
27
|
+
.claude/skills/j-doc/scripts/ / .agents/skills/j-doc/scripts/ -- a fixed
|
|
28
|
+
parents[N] climb from __file__ only lands on the real repo root from the
|
|
29
|
+
source location, not from a mirror. Same approach as
|
|
30
|
+
skills/j-close-story/scripts/check-story-closeable.sh,
|
|
31
|
+
check-privatized.sh:138, and compute-scope-divergence.sh:54 use for the
|
|
32
|
+
equivalent bash case.
|
|
33
|
+
"""
|
|
34
|
+
try:
|
|
35
|
+
result = subprocess.run(
|
|
36
|
+
["git", "rev-parse", "--show-toplevel"],
|
|
37
|
+
cwd=Path(__file__).resolve().parent,
|
|
38
|
+
capture_output=True,
|
|
39
|
+
text=True,
|
|
40
|
+
check=True,
|
|
41
|
+
)
|
|
42
|
+
return Path(result.stdout.strip())
|
|
43
|
+
except (subprocess.CalledProcessError, FileNotFoundError, OSError):
|
|
44
|
+
return Path.cwd()
|
|
45
|
+
|
|
46
|
+
|
|
21
47
|
def parse_args() -> argparse.Namespace:
|
|
22
48
|
parser = argparse.ArgumentParser(
|
|
23
49
|
description="Resolve the latest completed board date for a documentation target.",
|
|
@@ -25,7 +51,7 @@ def parse_args() -> argparse.Namespace:
|
|
|
25
51
|
parser.add_argument("target_path", help="Repo-relative documentation target path, e.g. README.md")
|
|
26
52
|
parser.add_argument(
|
|
27
53
|
"--root",
|
|
28
|
-
default=
|
|
54
|
+
default=_resolve_project_root(),
|
|
29
55
|
type=Path,
|
|
30
56
|
help="Repository root containing project/board/",
|
|
31
57
|
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: j.doc-sync
|
|
3
|
-
description:
|
|
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.
|
|
4
4
|
output_types: file_list
|
|
5
5
|
keywords:
|
|
6
6
|
- doc-sync
|
|
@@ -8,7 +8,6 @@ keywords:
|
|
|
8
8
|
- update docs
|
|
9
9
|
- sync docs
|
|
10
10
|
- j-doc-sync
|
|
11
|
-
- polyfill
|
|
12
11
|
examples:
|
|
13
12
|
- "update the documentation"
|
|
14
13
|
- "sync docs with current state"
|
|
@@ -17,9 +16,9 @@ examples:
|
|
|
17
16
|
|
|
18
17
|
# Doc-Sync — Keep Documentation in Sync with the Codebase
|
|
19
18
|
|
|
20
|
-
|
|
19
|
+
`skills/j-doc-sync/` is the **canonical, hand-edited** directory for this skill, per CLAUDE.md's "The Canonical Naming Contract" (the `E50` reopening of 2026-09-09, which promoted `skills/j-doc-sync/` from generated twin to sole canonical form). The `j-` prefix is there for collision safety — a real directory under a distinct name, so a host tool shipping its own same-named built-in command cannot shadow it (Claude Code's native skill resolution is a literal-string, directory-name-based match; see `docs/skill-authoring.md`'s "Invocation Convention").
|
|
21
20
|
|
|
22
|
-
|
|
21
|
+
> ⚠️ **`scripts/generate-j-alias.sh` was retired by `E50_S14` and no longer exists — there is nothing to run.** This file was previously generated from a bare `skills/doc-sync/SKILL.md` source; `E50_S15` deleted that directory. This file is now the sole canonical, hand-edited source for this skill — edit it directly.
|
|
23
22
|
|
|
24
23
|
## What this skill does
|
|
25
24
|
|
package/skills/j-dooo/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: j.dooo
|
|
3
|
-
description:
|
|
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".
|
|
4
4
|
keywords:
|
|
5
5
|
- dooo
|
|
6
6
|
- parallel
|
|
@@ -8,7 +8,6 @@ keywords:
|
|
|
8
8
|
- multiple tasks
|
|
9
9
|
- orchestrate
|
|
10
10
|
- j-dooo
|
|
11
|
-
- polyfill
|
|
12
11
|
examples:
|
|
13
12
|
- "run all pending tasks in parallel"
|
|
14
13
|
- "execute multiple tasks at once"
|
|
@@ -19,32 +18,24 @@ metadata:
|
|
|
19
18
|
|
|
20
19
|
# Dooo — Parallel Execution Orchestrator
|
|
21
20
|
|
|
22
|
-
|
|
21
|
+
`skills/j-dooo/` is the **canonical, hand-edited** directory for this skill, per CLAUDE.md's "The Canonical Naming Contract" (the `E50` reopening of 2026-09-09, which promoted `skills/j-dooo/` from generated twin to sole canonical form). The `j-` prefix is there for collision safety — a real directory under a distinct name, so a host tool shipping its own same-named built-in command cannot shadow it (Claude Code's native skill resolution is a literal-string, directory-name-based match; see `docs/skill-authoring.md`'s "Invocation Convention").
|
|
23
22
|
|
|
24
|
-
|
|
23
|
+
> ⚠️ **`scripts/generate-j-alias.sh` was retired by `E50_S14` and no longer exists — there is nothing to run.** This file was previously generated from a bare `skills/dooo/SKILL.md` source; `E50_S15` deleted that directory. This file is now the sole canonical, hand-edited source for this skill — edit it directly.
|
|
25
24
|
|
|
26
25
|
## Instructions
|
|
27
26
|
|
|
28
27
|
### 1. Invoke `/do`
|
|
29
28
|
Call the `/do` skill to let the user select and start an implementation. `/do` will launch a background sub-agent to handle the implementation. Once the sub-agent is launched, `/do` returns control here.
|
|
30
29
|
|
|
31
|
-
After `/do` hands back control, mark the story/task that was just started as **
|
|
30
|
+
After `/do` hands back control, mark the story/task that was just started as **In Progress** in its board file (update the `status:` field in the YAML front-matter).
|
|
32
31
|
|
|
33
32
|
### 2. Return to the board — identify parallelisable tasks
|
|
34
33
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
1. **Stories** — read all files from `project/board/stories/`.
|
|
38
|
-
2. **Tasks derived from stories** — read all files from `project/board/tasks/`. A task is considered in-scope if its parent story (`story_id` in the task's front-matter) is listed in `project/todo.md`, even if the task itself is not directly listed there.
|
|
39
|
-
|
|
40
|
-
A story or task is **eligible** to be presented as a parallel candidate if ALL of the following are true:
|
|
41
|
-
- Its status is `Pending` (not `Running`, `In Progress`, `Passed`, etc.)
|
|
42
|
-
- It has no unresolved dependencies (all blocking stories/tasks are at least `Running` or `Passed`)
|
|
43
|
-
- It is directly listed in `project/todo.md`, **OR** its parent story is listed in `project/todo.md`
|
|
34
|
+
Run `scripts/render-ranked-list.sh` from the project root. It scans `project/board/stories/` and `project/board/tasks/` against `project/todo.md` and prints the eligible items as a ranked, 1-indexed `<id> — <title>` list (stories first, then tasks) — this is the same eligibility scan and rendering `/dooo` has always used (status `Pending`, no unresolved dependencies, directly listed in `project/todo.md` or — for tasks — parent story listed), now implemented once in a shared script rather than described here as inline prose (`E63_S01_T01`; see `scripts/render-ranked-list.sh`'s own header for the full rule and its env-var overrides). A sibling command, `/todo --ranked-list`, calls the same script for a non-interactive view of this same list.
|
|
44
35
|
|
|
45
36
|
### 3. Present choices to the user
|
|
46
37
|
|
|
47
|
-
|
|
38
|
+
Relay the script's output as the numbered list (use `ask_user` with `choices`). **Always append "Done" as the last option.**
|
|
48
39
|
|
|
49
40
|
Example:
|
|
50
41
|
```
|
package/skills/j-error/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: j.error
|
|
3
|
-
description:
|
|
3
|
+
description: Guided troubleshooting flow that gathers context about an error — where it occurs, what was attempted, what went wrong, and what was expected.
|
|
4
4
|
keywords:
|
|
5
5
|
- error
|
|
6
6
|
- bug
|
|
@@ -9,7 +9,6 @@ keywords:
|
|
|
9
9
|
- debug
|
|
10
10
|
- broken
|
|
11
11
|
- j-error
|
|
12
|
-
- polyfill
|
|
13
12
|
examples:
|
|
14
13
|
- "I'm getting an error"
|
|
15
14
|
- "help me fix this bug"
|
|
@@ -20,9 +19,9 @@ metadata:
|
|
|
20
19
|
|
|
21
20
|
# Error — Guided Troubleshooting
|
|
22
21
|
|
|
23
|
-
|
|
22
|
+
`skills/j-error/` is the **canonical, hand-edited** directory for this skill, per CLAUDE.md's "The Canonical Naming Contract" (the `E50` reopening of 2026-09-09, which promoted `skills/j-error/` from generated twin to sole canonical form). The `j-` prefix is there for collision safety — a real directory under a distinct name, so a host tool shipping its own same-named built-in command cannot shadow it (Claude Code's native skill resolution is a literal-string, directory-name-based match; see `docs/skill-authoring.md`'s "Invocation Convention").
|
|
24
23
|
|
|
25
|
-
|
|
24
|
+
> ⚠️ **`scripts/generate-j-alias.sh` was retired by `E50_S14` and no longer exists — there is nothing to run.** This file was previously generated from a bare `skills/error/SKILL.md` source; `E50_S15` deleted that directory. This file is now the sole canonical, hand-edited source for this skill — edit it directly.
|
|
26
25
|
|
|
27
26
|
## Instructions
|
|
28
27
|
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: j.evaluate
|
|
3
|
-
description:
|
|
3
|
+
description: Analyzes example files against a target goal and produces a structured evaluation rapport.
|
|
4
4
|
keywords:
|
|
5
5
|
- j-evaluate
|
|
6
|
-
- polyfill
|
|
7
6
|
---
|
|
8
7
|
|
|
9
8
|
# Evaluate
|
|
10
9
|
|
|
11
|
-
|
|
10
|
+
`skills/j-evaluate/` is the **canonical, hand-edited** directory for this skill, per CLAUDE.md's "The Canonical Naming Contract" (the `E50` reopening of 2026-09-09, which promoted `skills/j-evaluate/` from generated twin to sole canonical form). The `j-` prefix is there for collision safety — a real directory under a distinct name, so a host tool shipping its own same-named built-in command cannot shadow it (Claude Code's native skill resolution is a literal-string, directory-name-based match; see `docs/skill-authoring.md`'s "Invocation Convention").
|
|
12
11
|
|
|
13
|
-
|
|
12
|
+
> ⚠️ **`scripts/generate-j-alias.sh` was retired by `E50_S14` and no longer exists — there is nothing to run.** This file was previously generated from a bare `skills/evaluate/SKILL.md` source; `E50_S15` deleted that directory. This file is now the sole canonical, hand-edited source for this skill — edit it directly.
|
|
14
13
|
|
|
15
14
|
## Input
|
|
16
15
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: j.examplify
|
|
3
|
-
description:
|
|
3
|
+
description: 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.
|
|
4
4
|
keywords:
|
|
5
5
|
- examplify
|
|
6
6
|
- explain
|
|
@@ -8,7 +8,6 @@ keywords:
|
|
|
8
8
|
- how does
|
|
9
9
|
- understand
|
|
10
10
|
- j-examplify
|
|
11
|
-
- polyfill
|
|
12
11
|
examples:
|
|
13
12
|
- "explain how this works"
|
|
14
13
|
- "give me an example of X"
|
|
@@ -17,9 +16,9 @@ examples:
|
|
|
17
16
|
|
|
18
17
|
# Concept Explainer
|
|
19
18
|
|
|
20
|
-
|
|
19
|
+
`skills/j-examplify/` is the **canonical, hand-edited** directory for this skill, per CLAUDE.md's "The Canonical Naming Contract" (the `E50` reopening of 2026-09-09, which promoted `skills/j-examplify/` from generated twin to sole canonical form). The `j-` prefix is there for collision safety — a real directory under a distinct name, so a host tool shipping its own same-named built-in command cannot shadow it (Claude Code's native skill resolution is a literal-string, directory-name-based match; see `docs/skill-authoring.md`'s "Invocation Convention").
|
|
21
20
|
|
|
22
|
-
|
|
21
|
+
> ⚠️ **`scripts/generate-j-alias.sh` was retired by `E50_S14` and no longer exists — there is nothing to run.** This file was previously generated from a bare `skills/examplify/SKILL.md` source; `E50_S15` deleted that directory. This file is now the sole canonical, hand-edited source for this skill — edit it directly.
|
|
23
22
|
|
|
24
23
|
## Instructions
|
|
25
24
|
|
package/skills/j-help/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: j.help
|
|
3
|
-
description:
|
|
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.
|
|
4
4
|
keywords:
|
|
5
5
|
- help
|
|
6
6
|
- skills
|
|
@@ -8,7 +8,6 @@ keywords:
|
|
|
8
8
|
- what can you do
|
|
9
9
|
- list skills
|
|
10
10
|
- j-help
|
|
11
|
-
- polyfill
|
|
12
11
|
examples:
|
|
13
12
|
- "what skills are available?"
|
|
14
13
|
- "show me all commands"
|
|
@@ -17,9 +16,9 @@ examples:
|
|
|
17
16
|
|
|
18
17
|
# Help — List Available Skills
|
|
19
18
|
|
|
20
|
-
|
|
19
|
+
`skills/j-help/` is the **canonical, hand-edited** directory for this skill, per CLAUDE.md's "The Canonical Naming Contract" (the `E50` reopening of 2026-09-09, which promoted `skills/j-help/` from generated twin to sole canonical form). The `j-` prefix is there for collision safety — a real directory under a distinct name, so a host tool shipping its own same-named built-in command cannot shadow it (Claude Code's native skill resolution is a literal-string, directory-name-based match; see `docs/skill-authoring.md`'s "Invocation Convention").
|
|
21
20
|
|
|
22
|
-
|
|
21
|
+
> ⚠️ **`scripts/generate-j-alias.sh` was retired by `E50_S14` and no longer exists — there is nothing to run.** This file was previously generated from a bare `skills/help/SKILL.md` source; `E50_S15` deleted that directory. This file is now the sole canonical, hand-edited source for this skill — edit it directly.
|
|
23
22
|
|
|
24
23
|
## Instructions
|
|
25
24
|
|
package/skills/j-idea/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: j.idea
|
|
3
|
-
description:
|
|
3
|
+
description: Capture a loosely-defined idea to project/ideas.md — a lightweight, "maybe someday" log with no board or promotion overhead.
|
|
4
4
|
keywords:
|
|
5
5
|
- idea
|
|
6
6
|
- capture idea
|
|
@@ -8,7 +8,6 @@ keywords:
|
|
|
8
8
|
- brain dump
|
|
9
9
|
- maybe someday
|
|
10
10
|
- j-idea
|
|
11
|
-
- polyfill
|
|
12
11
|
examples:
|
|
13
12
|
- "capture this as an idea"
|
|
14
13
|
- "log this idea for later"
|
|
@@ -20,9 +19,9 @@ metadata:
|
|
|
20
19
|
|
|
21
20
|
# Idea — Lightweight Idea Capture
|
|
22
21
|
|
|
23
|
-
|
|
22
|
+
`skills/j-idea/` is the **canonical, hand-edited** directory for this skill, per CLAUDE.md's "The Canonical Naming Contract" (the `E50` reopening of 2026-09-09, which promoted `skills/j-idea/` from generated twin to sole canonical form). The `j-` prefix is there for collision safety — a real directory under a distinct name, so a host tool shipping its own same-named built-in command cannot shadow it (Claude Code's native skill resolution is a literal-string, directory-name-based match; see `docs/skill-authoring.md`'s "Invocation Convention").
|
|
24
23
|
|
|
25
|
-
|
|
24
|
+
> ⚠️ **`scripts/generate-j-alias.sh` was retired by `E50_S14` and no longer exists — there is nothing to run.** This file was previously generated from a bare `skills/idea/SKILL.md` source; `E50_S15` deleted that directory. This file is now the sole canonical, hand-edited source for this skill — edit it directly.
|
|
26
25
|
|
|
27
26
|
## Instructions
|
|
28
27
|
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: j.improve
|
|
3
|
-
description:
|
|
3
|
+
description: A skill for analyzing a codebase and producing a structured improvement plan toward a defined goal.
|
|
4
4
|
keywords:
|
|
5
5
|
- j-improve
|
|
6
|
-
- polyfill
|
|
7
6
|
---
|
|
8
7
|
|
|
9
8
|
# Improve
|
|
10
9
|
|
|
11
|
-
|
|
10
|
+
`skills/j-improve/` is the **canonical, hand-edited** directory for this skill, per CLAUDE.md's "The Canonical Naming Contract" (the `E50` reopening of 2026-09-09, which promoted `skills/j-improve/` from generated twin to sole canonical form). The `j-` prefix is there for collision safety — a real directory under a distinct name, so a host tool shipping its own same-named built-in command cannot shadow it (Claude Code's native skill resolution is a literal-string, directory-name-based match; see `docs/skill-authoring.md`'s "Invocation Convention").
|
|
12
11
|
|
|
13
|
-
|
|
12
|
+
> ⚠️ **`scripts/generate-j-alias.sh` was retired by `E50_S14` and no longer exists — there is nothing to run.** This file was previously generated from a bare `skills/improve/SKILL.md` source; `E50_S15` deleted that directory. This file is now the sole canonical, hand-edited source for this skill — edit it directly.
|
|
14
13
|
|
|
15
14
|
## Instructions
|
|
16
15
|
|
package/skills/j-init/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: j.init
|
|
3
|
-
description:
|
|
3
|
+
description: initializes a new project with the standard directory structure, PROJECT_SUMMARY.md, workflow.json, git repo, and gitignore. Use when the built-in "/init" command (e.g. GH Copilot's own init) shadows Jenga's /init alias.
|
|
4
4
|
keywords:
|
|
5
5
|
- init
|
|
6
6
|
- initialize
|
|
@@ -8,7 +8,6 @@ keywords:
|
|
|
8
8
|
- new project
|
|
9
9
|
- scaffold
|
|
10
10
|
- j-init
|
|
11
|
-
- polyfill
|
|
12
11
|
examples:
|
|
13
12
|
- "initialize a new project"
|
|
14
13
|
- "set up a new workspace"
|
|
@@ -17,15 +16,25 @@ examples:
|
|
|
17
16
|
|
|
18
17
|
# J-Init — Project Setup (polyfill alias of Init)
|
|
19
18
|
|
|
20
|
-
|
|
21
|
-
some host tools/harnesses (e.g. GH Copilot) ship their own
|
|
22
|
-
named `/init`, which
|
|
23
|
-
native skill resolution is a literal-string, directory-name-based match —
|
|
24
|
-
`docs/skill-authoring.md`'s "Invocation Convention"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
19
|
+
`skills/j-init/` is the **sole canonical directory** for this skill. The `j-` prefix is
|
|
20
|
+
there for collision safety: some host tools/harnesses (e.g. GH Copilot) ship their own
|
|
21
|
+
built-in command literally named `/init`, which would shadow a bare `/init` alias, since
|
|
22
|
+
Claude Code's native skill resolution is a literal-string, directory-name-based match —
|
|
23
|
+
see `docs/skill-authoring.md`'s "Invocation Convention". Invoke it as `j.init` or
|
|
24
|
+
`/j-init`.
|
|
25
|
+
|
|
26
|
+
> **This file was previously described as a duplicate of `skills/init/`, with an
|
|
27
|
+
> instruction to keep the two in lockstep. That instruction is void.** `E50_S15_T04`
|
|
28
|
+
> deleted every bare-name `skills/<name>/` directory on 2026-09-19, making
|
|
29
|
+
> `skills/j-<name>/` the sole canonical form (see `docs/skill-authoring.md`'s "The
|
|
30
|
+
> Canonical Naming Contract"), and `scripts/generate-j-alias.sh` — which had excluded this
|
|
31
|
+
> hand-maintained pair from generation anyway — was retired by `E50_S14_T01`. There is no
|
|
32
|
+
> second copy to mirror a change into, and none should be created. Edit this file directly.
|
|
33
|
+
>
|
|
34
|
+
> Corrected by `E42_S07_T01`'s follow-up, per
|
|
35
|
+
> `project/rapports/problems/E42_S07_T01-j-init-skill-md-lockstep-instruction-still-stale.md`.
|
|
36
|
+
> The same correction already landed one level down, in
|
|
37
|
+
> `skills/j-init/scripts/apply-scaffold-visibility.sh`.
|
|
29
38
|
|
|
30
39
|
## Instructions
|
|
31
40
|
|
|
@@ -14,12 +14,14 @@
|
|
|
14
14
|
# skills/j-distribute/CONFIG_SCHEMA.md's "Scaffold visibility" section for the
|
|
15
15
|
# full rationale.
|
|
16
16
|
#
|
|
17
|
-
# This is skills/j-init/'s own
|
|
18
|
-
#
|
|
19
|
-
#
|
|
20
|
-
#
|
|
21
|
-
#
|
|
22
|
-
#
|
|
17
|
+
# This file is the sole copy. It was added by E31_S07_T03 as skills/j-init/'s own
|
|
18
|
+
# hand-maintained duplicate of a then-existing skills/init/scripts/ copy, with an
|
|
19
|
+
# instruction to keep the two in lockstep. That instruction is void: E50_S15_T04
|
|
20
|
+
# deleted every bare-name skills/<name>/ directory on 2026-09-19, making
|
|
21
|
+
# skills/j-<name>/ the sole canonical form (see docs/skill-authoring.md's "The
|
|
22
|
+
# Canonical Naming Contract"), and scripts/generate-j-alias.sh — which had excluded
|
|
23
|
+
# this pair from generation as hand-maintained — was itself retired by E50_S14_T01.
|
|
24
|
+
# There is no second copy to mirror a change into, and none should be created.
|
|
23
25
|
#
|
|
24
26
|
# Usage:
|
|
25
27
|
# apply-scaffold-visibility.sh <mode> [project_root]
|
package/skills/j-jbp/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: j.jbp
|
|
3
|
-
description:
|
|
3
|
+
description: Scaffold the project using the JengaBasePlate boilerplate repo template from https://github.com/samwelmunga/JengaBasePlate.git.
|
|
4
4
|
keywords:
|
|
5
5
|
- jbp
|
|
6
6
|
- boilerplate
|
|
@@ -8,7 +8,6 @@ keywords:
|
|
|
8
8
|
- template
|
|
9
9
|
- jenga base
|
|
10
10
|
- j-jbp
|
|
11
|
-
- polyfill
|
|
12
11
|
examples:
|
|
13
12
|
- "scaffold with JengaBasePlate"
|
|
14
13
|
- "set up the base template"
|
|
@@ -17,9 +16,9 @@ examples:
|
|
|
17
16
|
|
|
18
17
|
# JBP — JengaBasePlate Scaffold
|
|
19
18
|
|
|
20
|
-
|
|
19
|
+
`skills/j-jbp/` is the **canonical, hand-edited** directory for this skill, per CLAUDE.md's "The Canonical Naming Contract" (the `E50` reopening of 2026-09-09, which promoted `skills/j-jbp/` from generated twin to sole canonical form). The `j-` prefix is there for collision safety — a real directory under a distinct name, so a host tool shipping its own same-named built-in command cannot shadow it (Claude Code's native skill resolution is a literal-string, directory-name-based match; see `docs/skill-authoring.md`'s "Invocation Convention").
|
|
21
20
|
|
|
22
|
-
|
|
21
|
+
> ⚠️ **`scripts/generate-j-alias.sh` was retired by `E50_S14` and no longer exists — there is nothing to run.** This file was previously generated from a bare `skills/jbp/SKILL.md` source; `E50_S15` deleted that directory. This file is now the sole canonical, hand-edited source for this skill — edit it directly.
|
|
23
22
|
|
|
24
23
|
## Instructions
|
|
25
24
|
|
package/skills/j-lgtm/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: j.lgtm
|
|
3
|
-
description:
|
|
3
|
+
description: Approve and commit the current work, then continue to the next task. Shortcut that chains /commit followed by /continue.
|
|
4
4
|
keywords:
|
|
5
5
|
- lgtm
|
|
6
6
|
- approve
|
|
@@ -8,7 +8,6 @@ keywords:
|
|
|
8
8
|
- done
|
|
9
9
|
- commit and continue
|
|
10
10
|
- j-lgtm
|
|
11
|
-
- polyfill
|
|
12
11
|
examples:
|
|
13
12
|
- "lgtm, commit this"
|
|
14
13
|
- "looks good, move on"
|
|
@@ -17,9 +16,9 @@ examples:
|
|
|
17
16
|
|
|
18
17
|
# LGTM — Approve, Commit, and Continue
|
|
19
18
|
|
|
20
|
-
|
|
19
|
+
`skills/j-lgtm/` is the **canonical, hand-edited** directory for this skill, per CLAUDE.md's "The Canonical Naming Contract" (the `E50` reopening of 2026-09-09, which promoted `skills/j-lgtm/` from generated twin to sole canonical form). The `j-` prefix is there for collision safety — a real directory under a distinct name, so a host tool shipping its own same-named built-in command cannot shadow it (Claude Code's native skill resolution is a literal-string, directory-name-based match; see `docs/skill-authoring.md`'s "Invocation Convention").
|
|
21
20
|
|
|
22
|
-
|
|
21
|
+
> ⚠️ **`scripts/generate-j-alias.sh` was retired by `E50_S14` and no longer exists — there is nothing to run.** This file was previously generated from a bare `skills/lgtm/SKILL.md` source; `E50_S15` deleted that directory. This file is now the sole canonical, hand-edited source for this skill — edit it directly.
|
|
23
22
|
|
|
24
23
|
## Instructions
|
|
25
24
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: j.pi-plan
|
|
3
|
-
description:
|
|
3
|
+
description: Define or expand project Epics in PROJECT_SUMMARY.md. Use this at the start of a project to establish its foundation, AND whenever the user wants to add major new features, plan a significant new area of work, or make epic-level changes to an existing project. Trigger whenever you hear things like "new feature area", "big change", "new epic", "expand the project", "add a major capability", or "plan a new phase" — even mid-project.
|
|
4
4
|
keywords:
|
|
5
5
|
- epic
|
|
6
6
|
- template
|
|
@@ -8,7 +8,6 @@ keywords:
|
|
|
8
8
|
- new feature area
|
|
9
9
|
- project structure
|
|
10
10
|
- j-pi-plan
|
|
11
|
-
- polyfill
|
|
12
11
|
examples:
|
|
13
12
|
- "add a new epic for X"
|
|
14
13
|
- "expand the project with a new feature area"
|
|
@@ -19,9 +18,9 @@ metadata:
|
|
|
19
18
|
|
|
20
19
|
# Pi-plan — Define and Expand Project Epics
|
|
21
20
|
|
|
22
|
-
|
|
21
|
+
`skills/j-pi-plan/` is the **canonical, hand-edited** directory for this skill, per CLAUDE.md's "The Canonical Naming Contract" (the `E50` reopening of 2026-09-09, which promoted `skills/j-pi-plan/` from generated twin to sole canonical form). The `j-` prefix is there for collision safety — a real directory under a distinct name, so a host tool shipping its own same-named built-in command cannot shadow it (Claude Code's native skill resolution is a literal-string, directory-name-based match; see `docs/skill-authoring.md`'s "Invocation Convention").
|
|
23
22
|
|
|
24
|
-
|
|
23
|
+
> ⚠️ **`scripts/generate-j-alias.sh` was retired by `E50_S14` and no longer exists — there is nothing to run.** This file was previously generated from a bare `skills/pi-plan/SKILL.md` source; `E50_S15` deleted that directory. This file is now the sole canonical, hand-edited source for this skill — edit it directly.
|
|
25
24
|
|
|
26
25
|
## When to use this skill
|
|
27
26
|
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: j.proceed
|
|
3
|
-
description:
|
|
3
|
+
description: Review project progress by checking epics and stories, optionally consulting PROJECT_SUMMARY.md and WARP.md, then continue executing the project plan.
|
|
4
4
|
keywords:
|
|
5
5
|
- proceed
|
|
6
6
|
- review progress
|
|
7
7
|
- check epics
|
|
8
8
|
- continue executing
|
|
9
9
|
- j-proceed
|
|
10
|
-
- polyfill
|
|
11
10
|
examples:
|
|
12
11
|
- "proceed with the plan"
|
|
13
12
|
- "review progress and continue"
|
|
@@ -18,9 +17,9 @@ metadata:
|
|
|
18
17
|
|
|
19
18
|
# Proceed — Resume Project Execution
|
|
20
19
|
|
|
21
|
-
|
|
20
|
+
`skills/j-proceed/` is the **canonical, hand-edited** directory for this skill, per CLAUDE.md's "The Canonical Naming Contract" (the `E50` reopening of 2026-09-09, which promoted `skills/j-proceed/` from generated twin to sole canonical form). The `j-` prefix is there for collision safety — a real directory under a distinct name, so a host tool shipping its own same-named built-in command cannot shadow it (Claude Code's native skill resolution is a literal-string, directory-name-based match; see `docs/skill-authoring.md`'s "Invocation Convention").
|
|
22
21
|
|
|
23
|
-
|
|
22
|
+
> ⚠️ **`scripts/generate-j-alias.sh` was retired by `E50_S14` and no longer exists — there is nothing to run.** This file was previously generated from a bare `skills/proceed/SKILL.md` source; `E50_S15` deleted that directory. This file is now the sole canonical, hand-edited source for this skill — edit it directly.
|
|
24
23
|
|
|
25
24
|
## Instructions
|
|
26
25
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: j.publish
|
|
3
|
-
description:
|
|
3
|
+
description: Configure, validate, and orchestrate scaffolded release workflows through a single `/publish` entry point with bounded sub-commands.
|
|
4
4
|
keywords:
|
|
5
5
|
- publish
|
|
6
6
|
- deploy
|
|
@@ -12,7 +12,6 @@ keywords:
|
|
|
12
12
|
- staged publishing
|
|
13
13
|
- stage
|
|
14
14
|
- j-publish
|
|
15
|
-
- polyfill
|
|
16
15
|
examples:
|
|
17
16
|
- "publish setup --target staging-appstore"
|
|
18
17
|
- "publish setup --type mobile-ios"
|
|
@@ -42,9 +41,9 @@ metadata:
|
|
|
42
41
|
|
|
43
42
|
# Publish — Deployment Pipeline Orchestrator
|
|
44
43
|
|
|
45
|
-
|
|
44
|
+
`skills/j-publish/` is the **canonical, hand-edited** directory for this skill, per CLAUDE.md's "The Canonical Naming Contract" (the `E50` reopening of 2026-09-09, which promoted `skills/j-publish/` from generated twin to sole canonical form). The `j-` prefix is there for collision safety — a real directory under a distinct name, so a host tool shipping its own same-named built-in command cannot shadow it (Claude Code's native skill resolution is a literal-string, directory-name-based match; see `docs/skill-authoring.md`'s "Invocation Convention").
|
|
46
45
|
|
|
47
|
-
|
|
46
|
+
> ⚠️ **`scripts/generate-j-alias.sh` was retired by `E50_S14` and no longer exists — there is nothing to run.** This file was previously generated from a bare `skills/publish/SKILL.md` source; `E50_S15` deleted that directory. This file is now the sole canonical, hand-edited source for this skill — edit it directly.
|
|
48
47
|
|
|
49
48
|
`/publish` is the single entry point for release workflows in this repository. It wires configuration validation, setup, gated deployment, release-note drafting, and ledger history into one end-to-end flow, and dispatches the final publish step to a per-type adapter.
|
|
50
49
|
|