baldart 4.1.0 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/VERSION +1 -1
- package/framework/.claude/skills/api-design-principles/SKILL.md +10 -0
- package/framework/.claude/skills/baldart-push/SKILL.md +10 -0
- package/framework/.claude/skills/baldart-update/SKILL.md +10 -0
- package/framework/.claude/skills/bug/SKILL.md +10 -0
- package/framework/.claude/skills/capture/SKILL.md +10 -0
- package/framework/.claude/skills/context-primer/SKILL.md +10 -0
- package/framework/.claude/skills/copywriting/SKILL.md +10 -0
- package/framework/.claude/skills/design-system-init/SKILL.md +10 -0
- package/framework/.claude/skills/doc-writing-for-rag/SKILL.md +10 -0
- package/framework/.claude/skills/e2e-review/SKILL.md +10 -0
- package/framework/.claude/skills/find-skills/SKILL.md +10 -0
- package/framework/.claude/skills/frontend-design/SKILL.md +10 -0
- package/framework/.claude/skills/gamification-design/SKILL.md +10 -0
- package/framework/.claude/skills/issue-review/SKILL.md +10 -0
- package/framework/.claude/skills/kie-ai/SKILL.md +10 -0
- package/framework/.claude/skills/lsp-bootstrap/SKILL.md +10 -0
- package/framework/.claude/skills/motion-design/SKILL.md +10 -0
- package/framework/.claude/skills/new/SKILL.md +13 -3
- package/framework/.claude/skills/overlay/SKILL.md +10 -0
- package/framework/.claude/skills/playwright-skill/SKILL.md +10 -0
- package/framework/.claude/skills/prd/SKILL.md +10 -0
- package/framework/.claude/skills/prd/assets/state-template.md +1 -1
- package/framework/.claude/skills/prd/references/discovery-phase.md +11 -6
- package/framework/.claude/skills/prd-add/SKILL.md +10 -0
- package/framework/.claude/skills/remotion-best-practices/SKILL.md +11 -0
- package/framework/.claude/skills/seo-audit/SKILL.md +10 -0
- package/framework/.claude/skills/simplify/SKILL.md +10 -0
- package/framework/.claude/skills/skill-creator/SKILL.md +15 -2
- package/framework/.claude/skills/ui-design/SKILL.md +10 -0
- package/framework/.claude/skills/webapp-testing/SKILL.md +10 -0
- package/framework/.claude/skills/worktree-manager/SKILL.md +45 -6
- package/framework/agents/effort-protocol.md +121 -0
- package/framework/agents/index.md +1 -0
- package/framework/templates/skill-effort.snippet.md +25 -0
- package/package.json +1 -1
- package/src/commands/update.js +5 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,39 @@ All notable changes to BALDART will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [4.2.0] - 2026-06-03
|
|
9
|
+
|
|
10
|
+
**Per-skill reasoning effort: every shipped skill now declares an `effort:` baseline + honors an inline `effort=<level>` override.** Different skills should reason at different depths — routine narration shouldn't pay for deep deliberation, and structured planning shouldn't be starved of it. Each of the 29 skills gets a frontmatter `effort:` baseline (`prd` → `high`, the other 28 → `medium`) and a `## Effort` body block letting the user dial reasoning depth per-run, e.g. `/prd effort=high <content>`. **MINOR** (new protocol module + new template = capability added; no `baldart.config.yml` key, so the schema-change propagation rule does not apply).
|
|
11
|
+
|
|
12
|
+
> **Why.** Claude Code's native `effort:` frontmatter is the right knob for the *baseline*, but its precedence puts frontmatter **above** the session `/effort` level — only the global `CLAUDE_CODE_EFFORT_LEVEL` env var beats it, and a running skill cannot re-set the knob itself ([anthropics/claude-code#47275](https://github.com/anthropics/claude-code/issues/47275)). So a naive "default + inline flag that overrides" is impossible with the native knob alone. The inline override is therefore implemented as a **body-level reasoning escalation**: the skill reads `effort=<level>` from its arguments and engages the matching thinking directive (`think hard` → `ultrathink`), which the harness interprets from the text. Fully portable — no env var, no consumer config. Escalation upward is reliable; de-escalation below the frontmatter baseline is best-effort (the body can skip optional deliberation but can't lower the native budget).
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- **`framework/agents/effort-protocol.md`** (new protocol module, #21) — the textual SSOT: native-knob precedence chain, tiering rubric for choosing a baseline, the `effort=<level>` inline-override parsing contract (detect once at kickoff, strip the token before consuming user input — modeled on the existing `-stats` flag in `prd`), and the level→behavior mapping (`low` → no extended thinking; `high`/`xhigh`/`max` → `think hard`/`think harder`/`ultrathink`). Routed from `framework/agents/index.md`.
|
|
17
|
+
- **`framework/templates/skill-effort.snippet.md`** (new template) — copy-paste starter for the `effort:` frontmatter key + the `## Effort` body block, twin of `skill-project-context.snippet.md`.
|
|
18
|
+
- **`effort:` frontmatter + `## Effort` body block on all 29 skills** — `prd` is `high`; `new`, `bug`, `simplify`, `frontend-design`, `ui-design`, `design-system-init`, `e2e-review`, `issue-review`, and the remaining 19 are `medium`. Any `medium` skill can be pushed to `high`/`xhigh`/`max` per-run via the inline override.
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- **`skill-creator`** now instructs authors to set the `effort:` baseline (per the tiering rubric) and to paste the `## Effort` block for every new skill — the previous "do not include any other fields in YAML frontmatter" guidance is updated to permit `effort`.
|
|
23
|
+
|
|
24
|
+
### Out of scope (future)
|
|
25
|
+
|
|
26
|
+
- **Agents** (`framework/.claude/agents/*.md`) also support `effort:` in frontmatter, but they receive no inline arguments (they are spawned by orchestrators via the Task tool). Their override story — static baseline per agent + orchestrator passing the desired level in the Task prompt — is deferred to a separate release to avoid mixing two override models.
|
|
27
|
+
|
|
28
|
+
## [4.1.1] - 2026-06-02
|
|
29
|
+
|
|
30
|
+
**Fix: `/prd` (and `/new`) silently stopped creating their worktree after updating to ≥4.0.0.** Regression introduced in v4.0.0: `worktree-manager` was rewritten to resolve the worktree base from the **new `git.trunk_branch` config key** and to **hard-`exit 1`** when it is absent ("never assume develop"). Because `baldart update` never overwrites `baldart.config.yml`, every consumer that updated without re-running `configure` had no `git.trunk_branch` → the `nw-docs` / `nw` pre-flight aborted → no worktree. v4.0.0 also downgraded the `/prd` Step 1 worktree gate from BLOCKING to a non-blocking "MONITORING SIGNAL", so the abort no longer surfaced as a hard STOP — the session drifted into Discovery on the main checkout instead. **PATCH** (regression fix, no new capability, no schema change).
|
|
31
|
+
|
|
32
|
+
> **Why.** Before v4.0.0 the worktree base was hardcoded `origin/develop`, so creation always worked. Making it config-driven was correct, but the missing-key path should degrade to autodetection, not a hard failure — and the safety gate that would have caught the failure was removed in the same release. The fix resolves the trunk the same way `configure.js` already does (`origin/HEAD` → local `develop`/`main`/`master`), which is *not* "assume develop": it resolves the branch the repo actually uses.
|
|
33
|
+
|
|
34
|
+
### Fixed
|
|
35
|
+
|
|
36
|
+
- **`worktree-manager` `nw-docs` + `nw` pre-flight** — when `git.trunk_branch` is absent from `baldart.config.yml`, autodetect the real default branch (`git symbolic-ref refs/remotes/origin/HEAD` → first existing local `develop`/`main`/`master`) and warn, instead of `exit 1`. Hard-abort only when even autodetection finds nothing (bare repo / no branches). This unblocks `/prd` and `/new` worktree creation on consumers that updated without re-running `configure`.
|
|
37
|
+
- **`/prd` Step 1 worktree gate** (`prd/references/discovery-phase.md`) — restored from "MONITORING SIGNAL (non-blocking)" back to a **BLOCKING gate**: the kickoff "Ho creato la sessione PRD … in un worktree dedicato" message is emitted only after the worktree is verified on disk; if `nw-docs` aborted, HALT and surface the error verbatim instead of proceeding to Discovery on the main checkout (HARD RULE 17).
|
|
38
|
+
- **`/new` Phase 0 trunk resolution** (`new/SKILL.md`) — when `git.trunk_branch` is absent, `/new` now autodetects the trunk with the **same** `origin/HEAD` → `develop`/`main`/`master` logic as `worktree-manager`, instead of hard-assuming the `develop` literal. Keeps `/new`'s `$TRUNK` (used by the divergence gate and every `git diff "$TRUNK...HEAD"` gate) in lockstep with the branch `nw` actually bases the worktree on — a `main`-trunk repo no longer diverges between the two.
|
|
39
|
+
- **`update.js` schema-drift notice** — when the user declines `configure` and `git.trunk_branch` is among the missing keys, the CLI now states that `/prd` and `/new` will autodetect the trunk and warn until the key is set, replacing the previous (inaccurate for this key) "skills will prompt for the missing keys on first use" reassurance.
|
|
40
|
+
|
|
8
41
|
## [4.1.0] - 2026-06-02
|
|
9
42
|
|
|
10
43
|
**Portability: framework-wide path-literal de-contamination (`docs/…`, `backlog/`, `src/components/…` → `${paths.*}`) + new `paths.docs_dir` config key.** Closes the open follow-up forward-referenced in v4.0.3: a dedicated, per-occurrence judgment pass over the path-literals `contamination.js` flags across `framework/`. The scanner's `autofixable` count drops **219 → 49**; the 49 survivors are legitimate and intentionally kept. The new `paths.docs_dir` config key makes this **MINOR**.
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
4.
|
|
1
|
+
4.2.0
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: api-design-principles
|
|
3
|
+
effort: medium
|
|
3
4
|
description: Master REST and GraphQL API design principles to build intuitive, scalable, and maintainable APIs that delight developers. Use when designing new APIs, reviewing API specifications, or establishing API design standards.
|
|
4
5
|
---
|
|
5
6
|
|
|
@@ -7,6 +8,15 @@ description: Master REST and GraphQL API design principles to build intuitive, s
|
|
|
7
8
|
|
|
8
9
|
Master REST and GraphQL API design principles to build intuitive, scalable, and maintainable APIs that delight developers and stand the test of time.
|
|
9
10
|
|
|
11
|
+
## Effort
|
|
12
|
+
|
|
13
|
+
**Baseline:** `effort: medium` (frontmatter). **Inline override:** pass
|
|
14
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
15
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
16
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
17
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
18
|
+
|
|
19
|
+
|
|
10
20
|
## When to Use This Skill
|
|
11
21
|
|
|
12
22
|
- Designing new REST or GraphQL APIs
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: baldart-push
|
|
3
|
+
effort: medium
|
|
3
4
|
description: "Guidance for contributing local framework improvements upstream to the BALDART repository. Use when the user says /baldart-push, 'contribuisci al framework', 'push del framework', 'manda upstream', 'pusha le modifiche al framework', or wants to share local improvements made to .framework/. The skill walks the user through the contribution flow and hands off to `npx baldart push` (which must run in the user's terminal because the CLI is interactive). Never pushes baldart.config.yml, .baldart/overlays/, or .claude/hooks/ customizations — only generic framework payload."
|
|
4
5
|
contamination_scan: skip
|
|
5
6
|
---
|
|
@@ -56,6 +57,15 @@ overlay content: extra contamination rules specific to the consumer's domain
|
|
|
56
57
|
(e.g. internal codenames, private endpoints).
|
|
57
58
|
**On missing/empty keys:** not applicable.
|
|
58
59
|
|
|
60
|
+
## Effort
|
|
61
|
+
|
|
62
|
+
**Baseline:** `effort: medium` (frontmatter). **Inline override:** pass
|
|
63
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
64
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
65
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
66
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
67
|
+
|
|
68
|
+
|
|
59
69
|
## Hard rules
|
|
60
70
|
|
|
61
71
|
1. **NEVER push** `baldart.config.yml`, anything under `.baldart/`, anything
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: baldart-update
|
|
3
|
+
effort: medium
|
|
3
4
|
description: "Guidance for updating BALDART framework to the latest version in a consumer repo. Use when the user says /baldart-update, 'aggiorna baldart', 'aggiorna framework', 'update del framework', 'pull baldart latest', or wants to bring the framework up-to-date. Two modes, auto-detected: INTERACTIVE (a human is present) replicates the native CLI's user-decision points (preview diff, working-tree stash) as chat-side confirmations; AUTONOMOUS (unattended — CI / scheduled routine, signalled by BALDART_AUTONOMOUS / CI / GITHUB_ACTIONS env) runs `npx baldart update --yes` with zero prompts and hard-STOP guardrails (never forces a merge or reset on custom divergence / conflicts). Both let the CLI auto-resolve mechanical noise (hook backfill, subtree-merge commits, schema migration) and assert post-flight that .framework/VERSION actually changed. For non-update drift, defers to `npx baldart` (smart doctor)."
|
|
4
5
|
contamination_scan: skip
|
|
5
6
|
---
|
|
@@ -215,6 +216,15 @@ verification steps (e.g. "run `npm test` after symlink reconcile").
|
|
|
215
216
|
own state files. See [framework/agents/project-context.md](../../../agents/project-context.md)
|
|
216
217
|
for the protocol.
|
|
217
218
|
|
|
219
|
+
## Effort
|
|
220
|
+
|
|
221
|
+
**Baseline:** `effort: medium` (frontmatter). **Inline override:** pass
|
|
222
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
223
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
224
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
225
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
226
|
+
|
|
227
|
+
|
|
218
228
|
## Hard rules
|
|
219
229
|
|
|
220
230
|
0. **MUST run mode detection FIRST** (the `printenv | grep` probe above) and
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: bug
|
|
3
|
+
effort: medium
|
|
3
4
|
description: >
|
|
4
5
|
Structured bug investigation and resolution workflow (framework-agnostic; project-specific entry points are loaded from `.baldart/overlays/bug.md`).
|
|
5
6
|
Use when: the user says /bug, 'debug', 'c e un bug', 'non funziona', 'errore', 'broken',
|
|
@@ -21,6 +22,15 @@ Argument: optional bug description (e.g., `/bug feature X is not saving`).
|
|
|
21
22
|
**Overlay:** loads `.baldart/overlays/bug.md` if present — project-specific debug entry points (e.g. SWR debug switches, env summary helpers, error-code modules). The base skill stays generic; project-specific code paths live in the overlay.
|
|
22
23
|
**On missing/empty keys:** ask the user; do not assume defaults. See `framework/agents/project-context.md` § 3.
|
|
23
24
|
|
|
25
|
+
## Effort
|
|
26
|
+
|
|
27
|
+
**Baseline:** `effort: medium` (frontmatter). **Inline override:** pass
|
|
28
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
29
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
30
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
31
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
32
|
+
|
|
33
|
+
|
|
24
34
|
## MCP dependencies
|
|
25
35
|
|
|
26
36
|
See [framework/docs/MCP-INTEGRATION.md](../../../docs/MCP-INTEGRATION.md) for the BALDART MCP integration contract and the rationale behind this section.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: capture
|
|
3
|
+
effort: medium
|
|
3
4
|
description: Distilla una sintesi cross-document della conversazione recente in una synthesis page riusabile del wiki overlay (path da `paths.wiki_dir`/syntheses/ in `baldart.config.yml`). Usare quando l'utente invoca `/capture`, dice "capture synthesis", "salva sintesi", "distilla conversazione", "save this as wiki", "questa conversazione in wiki", o quando chiede di trasformare un ragionamento cross-document appena fatto in una pagina stabile. Due modalità — manual (sempre funzionante) e proactive (conditional sui candidati in `.claude/capture-queue/`). Implementa il loop query→wiki file-back di Karpathy.
|
|
4
5
|
version: 0.1.0
|
|
5
6
|
---
|
|
@@ -15,6 +16,15 @@ Turns a recent multi-turn synthesis (cross-document reasoning done by the assist
|
|
|
15
16
|
**Overlay:** loads `.baldart/overlays/capture.md` if present — project-specific wiki-log helper path, domain vocabulary for the `domain:` frontmatter field.
|
|
16
17
|
**On missing/empty keys:** ask the user; do not assume defaults. See `framework/agents/project-context.md` § 3.
|
|
17
18
|
|
|
19
|
+
## Effort
|
|
20
|
+
|
|
21
|
+
**Baseline:** `effort: medium` (frontmatter). **Inline override:** pass
|
|
22
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
23
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
24
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
25
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
26
|
+
|
|
27
|
+
|
|
18
28
|
## Two Modes
|
|
19
29
|
|
|
20
30
|
| Mode | When | How |
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: cont
|
|
3
|
+
effort: medium
|
|
3
4
|
description: >
|
|
4
5
|
Load codebase context silently before starting work, optimized for LLM
|
|
5
6
|
comprehension using research-backed structured formatting.
|
|
@@ -20,6 +21,15 @@ Load structured, task-adaptive context about a topic into the conversation befor
|
|
|
20
21
|
**Overlay:** loads `.baldart/overlays/context-primer.md` if present — project-specific topic vocabulary, must-include canonical docs.
|
|
21
22
|
**On missing/empty keys:** ask the user; do not assume defaults. See `framework/agents/project-context.md` § 3.
|
|
22
23
|
|
|
24
|
+
## Effort
|
|
25
|
+
|
|
26
|
+
**Baseline:** `effort: medium` (frontmatter). **Inline override:** pass
|
|
27
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
28
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
29
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
30
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
31
|
+
|
|
32
|
+
|
|
23
33
|
## Key Research Principles
|
|
24
34
|
|
|
25
35
|
1. **Constraints FIRST** — primacy effect: critical info at start gets +30% recall
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: copywriting
|
|
3
|
+
effort: medium
|
|
3
4
|
version: 1.0.0
|
|
4
5
|
description: When the user wants to write, rewrite, or improve marketing copy for any page — including homepage, landing pages, pricing pages, feature pages, about pages, or product pages. Also use when the user says "write copy for," "improve this copy," "rewrite this page," "marketing copy," "headline help," or "CTA copy." For email copy, see email-sequence. For popup copy, see popup-cro.
|
|
5
6
|
---
|
|
@@ -15,6 +16,15 @@ You are an expert conversion copywriter. Your goal is to write marketing copy th
|
|
|
15
16
|
**Overlay:** loads `.baldart/overlays/copywriting.md` if present — this is where project-specific brand voice pillars, audience register rules, and language constraints live. Sections marked `## [OVERRIDE] <topic>` replace base sections.
|
|
16
17
|
**On missing/empty keys:** ask the user; do not assume defaults. See `framework/agents/project-context.md` § 3.
|
|
17
18
|
|
|
19
|
+
## Effort
|
|
20
|
+
|
|
21
|
+
**Baseline:** `effort: medium` (frontmatter). **Inline override:** pass
|
|
22
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
23
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
24
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
25
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
26
|
+
|
|
27
|
+
|
|
18
28
|
## Brand Voice Context (MANDATORY for UI copy)
|
|
19
29
|
|
|
20
30
|
When writing copy that will render in UI (buttons, empty states, banners, confirmation dialogs, inline hints, navigation labels, error messages), the brand voice is canonical — do not invent a new tone on the fly. The following reads are BLOCKING prerequisites:
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: design-system-init
|
|
3
|
+
effort: medium
|
|
3
4
|
description: >
|
|
4
5
|
Bootstrap a component registry / design system on a project that doesn't have
|
|
5
6
|
one yet. Scaffolds ${paths.design_system}/INDEX.md (component index +
|
|
@@ -42,6 +43,15 @@ recipe for non-Tailwind stacks).
|
|
|
42
43
|
**On missing keys:** ask the user; do not assume defaults. See
|
|
43
44
|
`framework/agents/project-context.md` § 3.
|
|
44
45
|
|
|
46
|
+
## Effort
|
|
47
|
+
|
|
48
|
+
**Baseline:** `effort: medium` (frontmatter). **Inline override:** pass
|
|
49
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
50
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
51
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
52
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
53
|
+
|
|
54
|
+
|
|
45
55
|
## What This Skill Does
|
|
46
56
|
|
|
47
57
|
1. **Refusal check.** Reads `baldart.config.yml`.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: doc-writing-for-rag
|
|
3
|
+
effort: medium
|
|
3
4
|
description: "Writes high-density reference documentation optimized for RAG indexing. Uses compact templates, minimal frontmatter, cross-references to schemas.md/errors.md (paths from `paths.api_schemas`/`paths.api_errors` in `baldart.config.yml`). Load this skill when creating or rewriting files in `${paths.references_dir}`, `${paths.prd_dir}`, or when you hear 'endpoint template', 'compact docs', 'doc for RAG', 'dense documentation', 'signal/noise ratio'."
|
|
4
5
|
---
|
|
5
6
|
|
|
@@ -14,6 +15,15 @@ Writing protocol for reference docs optimized for LightRAG indexing. Validated o
|
|
|
14
15
|
**Overlay:** loads `.baldart/overlays/doc-writing-for-rag.md` if present — project-specific domain list, schema naming conventions, frontmatter extensions.
|
|
15
16
|
**On missing/empty keys:** ask the user; do not assume defaults. See `framework/agents/project-context.md` § 3.
|
|
16
17
|
|
|
18
|
+
## Effort
|
|
19
|
+
|
|
20
|
+
**Baseline:** `effort: medium` (frontmatter). **Inline override:** pass
|
|
21
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
22
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
23
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
24
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
25
|
+
|
|
26
|
+
|
|
17
27
|
## When to Use
|
|
18
28
|
|
|
19
29
|
Load this skill when:
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: e2e-review
|
|
3
|
+
effort: medium
|
|
3
4
|
description: >
|
|
4
5
|
Deterministic, BLOCKING end-to-end review run after a feature is implemented.
|
|
5
6
|
Combines functional E2E (Playwright spec written by `coder`, executed via
|
|
@@ -54,6 +55,15 @@ the implementing agent (`coder`) and the verifying agent
|
|
|
54
55
|
(`visual-fidelity-verifier`) are distinct, with rule-based aggregation in
|
|
55
56
|
between — no agent grades its own work.
|
|
56
57
|
|
|
58
|
+
## Effort
|
|
59
|
+
|
|
60
|
+
**Baseline:** `effort: medium` (frontmatter). **Inline override:** pass
|
|
61
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
62
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
63
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
64
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
65
|
+
|
|
66
|
+
|
|
57
67
|
---
|
|
58
68
|
|
|
59
69
|
## Invocation Modes
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: find-skills
|
|
3
|
+
effort: medium
|
|
3
4
|
description: Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
|
|
4
5
|
---
|
|
5
6
|
|
|
@@ -7,6 +8,15 @@ description: Helps users discover and install agent skills when they ask questio
|
|
|
7
8
|
|
|
8
9
|
This skill helps you discover and install skills from the open agent skills ecosystem.
|
|
9
10
|
|
|
11
|
+
## Effort
|
|
12
|
+
|
|
13
|
+
**Baseline:** `effort: medium` (frontmatter). **Inline override:** pass
|
|
14
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
15
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
16
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
17
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
18
|
+
|
|
19
|
+
|
|
10
20
|
## When to Use This Skill
|
|
11
21
|
|
|
12
22
|
Use this skill when the user:
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: frontend-design
|
|
3
|
+
effort: medium
|
|
3
4
|
description: Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML/CSS layouts, or when styling/beautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.
|
|
4
5
|
license: Complete terms in LICENSE.txt
|
|
5
6
|
---
|
|
@@ -15,6 +16,15 @@ This skill guides creation of distinctive, production-grade frontend interfaces
|
|
|
15
16
|
|
|
16
17
|
The user provides frontend requirements: a component, page, application, or interface to build. They may include context about the purpose, audience, or technical constraints.
|
|
17
18
|
|
|
19
|
+
## Effort
|
|
20
|
+
|
|
21
|
+
**Baseline:** `effort: medium` (frontmatter). **Inline override:** pass
|
|
22
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
23
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
24
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
25
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
26
|
+
|
|
27
|
+
|
|
18
28
|
## Design Thinking
|
|
19
29
|
|
|
20
30
|
Before coding, understand the context and commit to a BOLD aesthetic direction:
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gamification-design
|
|
3
|
+
effort: medium
|
|
3
4
|
version: 1.0.0
|
|
4
5
|
description: Use when designing or analyzing points systems, reward loops, progression mechanics, engagement features, or loyalty programs. Triggers include "points system," "rewards design," "progression," "engagement loop," "battle pass," "loyalty mechanics," "gamification," or "retention hooks." For B2C customer-facing features in this codebase, this skill invokes the hyper-gamification-designer agent.
|
|
5
6
|
---
|
|
@@ -15,6 +16,15 @@ Analyze and optimize gamification elements for maximum engagement and retention.
|
|
|
15
16
|
**Overlay:** loads `.baldart/overlays/gamification-design.md` if present — project-specific reward economy facts (point name, tier ladder, lottery format), motion vocabulary, brand voice register for customer surfaces.
|
|
16
17
|
**On missing/empty keys:** ask the user; do not assume defaults. See `framework/agents/project-context.md` § 3.
|
|
17
18
|
|
|
19
|
+
## Effort
|
|
20
|
+
|
|
21
|
+
**Baseline:** `effort: medium` (frontmatter). **Inline override:** pass
|
|
22
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
23
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
24
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
25
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
26
|
+
|
|
27
|
+
|
|
18
28
|
## When to Use
|
|
19
29
|
|
|
20
30
|
Invoke this skill when working on:
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: issue-review
|
|
3
|
+
effort: medium
|
|
3
4
|
description: Run the GitHub issue review workflow for triage and planning. Use when the user asks to review or triage a GitHub issue, requests the /issue-review slash command, or needs an issue summary with priority/plan/tests.
|
|
4
5
|
---
|
|
5
6
|
|
|
@@ -7,6 +8,15 @@ description: Run the GitHub issue review workflow for triage and planning. Use w
|
|
|
7
8
|
|
|
8
9
|
## Overview
|
|
9
10
|
|
|
11
|
+
## Effort
|
|
12
|
+
|
|
13
|
+
**Baseline:** `effort: medium` (frontmatter). **Inline override:** pass
|
|
14
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
15
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
16
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
17
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
18
|
+
|
|
19
|
+
|
|
10
20
|
Run the `/issue-review` automation, capture issue context, and produce a triage + plan summary using the project's GitHub issue subagent protocol.
|
|
11
21
|
|
|
12
22
|
## Workflow
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: kie-ai
|
|
3
|
+
effort: medium
|
|
3
4
|
description: >
|
|
4
5
|
Generate images, videos, and audio using Kie.ai's unified AI API platform (80+ models).
|
|
5
6
|
Use when: (1) generating images from text or editing images (Nano Banana 2, Imagen 4, Flux Kontext,
|
|
@@ -23,6 +24,15 @@ description: >
|
|
|
23
24
|
**Overlay:** loads `.baldart/overlays/kie-ai.md` if present — project-specific illustration character library, video-prompt motion vocabulary, and forbidden aesthetic patterns.
|
|
24
25
|
**On missing/empty keys:** ask the user; do not assume defaults. See `framework/agents/project-context.md` § 3.
|
|
25
26
|
|
|
27
|
+
## Effort
|
|
28
|
+
|
|
29
|
+
**Baseline:** `effort: medium` (frontmatter). **Inline override:** pass
|
|
30
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
31
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
32
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
33
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
34
|
+
|
|
35
|
+
|
|
26
36
|
## Visual Contract (project-specific)
|
|
27
37
|
|
|
28
38
|
When generating images, videos, or animation prompts for product illustrations, the project's design-system SSOT is a BLOCKING prerequisite before model selection or prompt writing — but only when the project has one. Reading order:
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: lsp-bootstrap
|
|
3
|
+
effort: medium
|
|
3
4
|
description: >
|
|
4
5
|
Install, verify, and document the LSP symbol-search layer for this project.
|
|
5
6
|
Detects languages (TypeScript, Python, Go, Rust, Ruby), installs the matching
|
|
@@ -25,6 +26,15 @@ context on textual collisions; with it, references resolve to the same symbol
|
|
|
25
26
|
**Overlay:** loads `.baldart/overlays/lsp-bootstrap.md` if present — project-specific install commands (e.g. a system-managed pyright via uv, a non-standard gopls path).
|
|
26
27
|
**On missing keys:** ask the user; do not assume defaults. See `framework/agents/project-context.md` § 3.
|
|
27
28
|
|
|
29
|
+
## Effort
|
|
30
|
+
|
|
31
|
+
**Baseline:** `effort: medium` (frontmatter). **Inline override:** pass
|
|
32
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
33
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
34
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
35
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
36
|
+
|
|
37
|
+
|
|
28
38
|
## What This Skill Does
|
|
29
39
|
|
|
30
40
|
1. Reads `baldart.config.yml` and confirms `features.has_lsp_layer: true`.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: motion-design
|
|
3
|
+
effort: medium
|
|
3
4
|
description: >
|
|
4
5
|
Applies motion design principles to create emotionally-driven, technically sound animations and transitions.
|
|
5
6
|
Provides timing, easing, choreography, and Disney animation principles adapted for UI.
|
|
@@ -21,6 +22,15 @@ metadata:
|
|
|
21
22
|
**Overlay:** loads `.baldart/overlays/motion-design.md` if present — project-specific motion vocabulary, brand-mandated easing curves, character-motion library.
|
|
22
23
|
**On missing/empty keys:** ask the user; do not assume defaults. See `framework/agents/project-context.md` § 3.
|
|
23
24
|
|
|
25
|
+
## Effort
|
|
26
|
+
|
|
27
|
+
**Baseline:** `effort: medium` (frontmatter). **Inline override:** pass
|
|
28
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
29
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
30
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
31
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
32
|
+
|
|
33
|
+
|
|
24
34
|
## Visual Contract
|
|
25
35
|
|
|
26
36
|
When designing motion for generated marketing illustrations, prompts, or short product videos, the project's illustration-motion spec is a BLOCKING prerequisite when present:
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: new
|
|
3
|
+
effort: medium
|
|
3
4
|
description: >
|
|
4
5
|
Orchestrate a team of specialized agents to implement one or more backlog cards
|
|
5
6
|
end-to-end inside a dedicated worktree, with code review, doc review, QA, and
|
|
@@ -16,7 +17,7 @@ description: >
|
|
|
16
17
|
|
|
17
18
|
## Project Context
|
|
18
19
|
|
|
19
|
-
**Reads from `baldart.config.yml`:** `paths.backlog_dir`, `paths.references_dir`, `git.trunk_branch` (integration trunk;
|
|
20
|
+
**Reads from `baldart.config.yml`:** `paths.backlog_dir`, `paths.references_dir`, `git.trunk_branch` (integration trunk; autodetected from `origin/HEAD` when the key is absent — see Phase 0 step 0), `git.merge_strategy`, `paths.high_risk_modules` (risk-detector path list), `paths.metrics` (default `docs/metrics`), `stack.language` / `stack.database` / `stack.deployment` (gate guards), and `features.has_e2e_review` / `features.has_design_system` / `features.has_lsp_layer`.
|
|
20
21
|
**Gated by features:** `features.has_backlog` (skill REFUSES to run when `false` — this orchestrator operates on backlog cards by definition).
|
|
21
22
|
**Overlay:** loads `.baldart/overlays/new.md` if present — project-specific canonical-docs registry (e.g. ssot-registry, linking-protocol guides), tooling paths (e.g. validation scripts).
|
|
22
23
|
**On missing/empty keys:** ask the user; do not assume defaults. See `framework/agents/project-context.md` § 3.
|
|
@@ -39,6 +40,15 @@ If no card IDs are provided, ask the user which cards to implement.
|
|
|
39
40
|
|
|
40
41
|
**Opt-in session telemetry (`-stats` / `--stats`)**: strip `-stats` / `--stats` from the args list exactly like `-full` (it is NOT a card ID), and set an internal flag `STATS=true` for this run. When present, Phase 8 additionally measures REAL token + wall-clock cost per agent role (coder, code-reviewer, …) by post-processing the session transcripts — zero model-token overhead, runs in Bash after the work is done. When absent, Phase 8 behaves exactly as before. The flag is batch-scoped and composes with `-full` (`/new FEAT-005 -full -stats`).
|
|
41
42
|
|
|
43
|
+
## Effort
|
|
44
|
+
|
|
45
|
+
**Baseline:** `effort: medium` (frontmatter). **Inline override:** pass
|
|
46
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
47
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
48
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
49
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
50
|
+
|
|
51
|
+
|
|
42
52
|
---
|
|
43
53
|
|
|
44
54
|
## Context Tracking (CRITICAL)
|
|
@@ -130,7 +140,7 @@ Trunk branch: [resolved git.trunk_branch — Phase 0 step 0 populates]
|
|
|
130
140
|
|
|
131
141
|
0. **Feature gate + config resolution (BLOCKING)** — before anything else:
|
|
132
142
|
- Read `features.has_backlog` from `baldart.config.yml`. If it is `false` (or the key is absent and the user confirms there is no backlog), this skill REFUSES to run: print "`/new` operates on backlog cards and requires `features.has_backlog: true` — run `npx baldart configure` to enable." and HALT. Do NOT proceed to step 1.
|
|
133
|
-
- Resolve `$TRUNK` = `git.trunk_branch` from `baldart.config.yml`
|
|
143
|
+
- Resolve `$TRUNK` = `git.trunk_branch` from `baldart.config.yml`. **When the key is absent** (consumer updated to ≥4.0.0 without re-running `configure`), do NOT hard-assume `develop` — autodetect the repo's real default branch exactly as worktree-manager does, so `/new` and `nw` agree on the base: `git -C "$MAIN" symbolic-ref --quiet refs/remotes/origin/HEAD` (strip `refs/remotes/origin/`), else the first existing local branch among `develop` / `main` / `master`. A `main`-trunk repo defaulted to `develop` here would diverge from the worktree base `nw` picks and break every `git diff "$TRUNK...HEAD"` gate. Only HALT ("Trunk branch unresolved — run `npx baldart configure`") if nothing resolves. Persist the resolved value as `Trunk branch:` in the tracker `## Worktree` section. **Every later Phase 0 / Phase 6c bash snippet that references the integration trunk MUST use `$TRUNK`, never a baked-in `develop`.** Begin every later consumer with a guard: if `$TRUNK` is empty → HALT with "Trunk branch unresolved — re-read `git.trunk_branch` from the tracker".
|
|
134
144
|
|
|
135
145
|
1. **Resolve `$MAIN`** — the absolute path of the main repo (not a worktree). If `/new` was invoked from inside a worktree, walk up to the parent repo via `git rev-parse --show-superproject-working-tree` or `git worktree list` until you find the non-worktree root. Persist as `Main repo:` in the tracker `## Worktree` section. **Write `$MAIN` to the tracker the moment it is computed** — every later consumer (Phase 6c, Phase 6b) MUST re-read it from the tracker and HALT with "`$MAIN` absent from tracker" if the field is missing or empty, never silently use an undefined `$MAIN` (it does not survive context compaction).
|
|
136
146
|
|
|
@@ -1280,7 +1290,7 @@ skill's Phase 1 falls back to deriving Gherkin scenarios from
|
|
|
1280
1290
|
|
|
1281
1291
|
Run this exact bash block in the worktree. It is deterministic (grep + path match), not LLM-discretionary.
|
|
1282
1292
|
|
|
1283
|
-
`$TRUNK` is the trunk branch resolved in Phase 0 (`git.trunk_branch`,
|
|
1293
|
+
`$TRUNK` is the trunk branch resolved in Phase 0 (`git.trunk_branch`, autodetected when the key is absent — see Phase 0 step 0). `$HIGH_RISK_RE` is an alternation built from `paths.high_risk_modules` in `baldart.config.yml` (e.g. `path1|path2|withAuth`). **If `paths.high_risk_modules` is absent, the path-based triggers (#1) emit a one-line diagnostic and match nothing — no hardcoded project path is baked in.**
|
|
1284
1294
|
|
|
1285
1295
|
```bash
|
|
1286
1296
|
cd <worktree-path>
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: overlay
|
|
3
|
+
effort: medium
|
|
3
4
|
description: "Guided author of .baldart/overlays/ — the per-project customisation layer for BALDART skills, agents, and commands. Use when the user says /overlay, 'customizza skill', 'modifica agente upstream', 'personalizza comando', 'crea overlay', 'extend skill X', 'override agent Y', 'overlay drift', or when the framework-edit-gate hook blocked an edit and pointed here. The skill walks the user through choosing the right canal (skill / agent / command), scaffolds the overlay with correct frontmatter and section markers via `npx baldart overlay scaffold`, validates the merge via `npx baldart overlay validate`, and surfaces drift via `npx baldart overlay drift`. Never edits `.framework/` directly and never re-implements the merger logic — the CLI is the source of truth."
|
|
4
5
|
contamination_scan: skip
|
|
5
6
|
---
|
|
@@ -41,6 +42,15 @@ The skill MUST NOT re-implement any of the above. If you find yourself writing p
|
|
|
41
42
|
**Overlay:** this skill has no overlay (it would be paradoxical).
|
|
42
43
|
**On missing/empty keys:** not applicable.
|
|
43
44
|
|
|
45
|
+
## Effort
|
|
46
|
+
|
|
47
|
+
**Baseline:** `effort: medium` (frontmatter). **Inline override:** pass
|
|
48
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
49
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
50
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
51
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
52
|
+
|
|
53
|
+
|
|
44
54
|
## Hard rules
|
|
45
55
|
|
|
46
56
|
1. **NEVER edit files under `.framework/` directly.** The contamination scanner will block the edit, and even if it didn't, `baldart update` would overwrite the change.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: playwright-skill
|
|
3
|
+
effort: medium
|
|
3
4
|
description: E2E browser testing with Playwright Test CLI. Write .spec.ts files in tests/e2e/, run via `npm run test:e2e`. Supports headed mode, debug, UI mode, filtering, retries, screenshots, and trace on failure. Use when user wants to test websites, automate browser interactions, validate web functionality, or perform any browser-based testing.
|
|
4
5
|
---
|
|
5
6
|
|
|
@@ -17,6 +18,15 @@ All browser testing uses the **Playwright Test CLI** via `playwright.config.ts`
|
|
|
17
18
|
**Overlay:** loads `.baldart/overlays/playwright-skill.md` if present — project-specific test URLs, auth helpers, theming pairing assertions.
|
|
18
19
|
**On missing/empty keys:** ask the user; do not assume defaults. See `framework/agents/project-context.md` § 3.
|
|
19
20
|
|
|
21
|
+
## Effort
|
|
22
|
+
|
|
23
|
+
**Baseline:** `effort: medium` (frontmatter). **Inline override:** pass
|
|
24
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
25
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
26
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
27
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
28
|
+
|
|
29
|
+
|
|
20
30
|
## MCP dependencies
|
|
21
31
|
|
|
22
32
|
See [framework/docs/MCP-INTEGRATION.md](../../../docs/MCP-INTEGRATION.md) for the BALDART MCP integration contract and the rationale behind this section.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: prd
|
|
3
|
+
effort: high
|
|
3
4
|
description: "Structured PRD creation skill. Use when the user says /prd, 'crea un prd', 'nuova funzionalita', 'pianifica feature', or wants to plan a new feature end-to-end. Also handles /prd-add, 'aggiungi requisito', 'serve anche', 'manca un endpoint' for change requests on active PRD sessions — runs ICIAS impact analysis to determine which phases need SKIP/PATCH/REDO. Produces PRD + UI design + backlog cards, all validated and committed. Multi-turn conversation: asks questions, waits for answers, iterates through discovery, design, spec writing, card creation, and validation phases."
|
|
4
5
|
---
|
|
5
6
|
|
|
@@ -15,6 +16,15 @@ cards. Anti-drift by design — rigid step sequence, persistent state, visible p
|
|
|
15
16
|
**Overlay:** loads `.baldart/overlays/prd.md` if present — project-specific terminology, card layout overrides, segment names, mandated review gates.
|
|
16
17
|
**On missing/empty keys:** ask the user; do not assume defaults. See `framework/agents/project-context.md` § 3.
|
|
17
18
|
|
|
19
|
+
## Effort
|
|
20
|
+
|
|
21
|
+
**Baseline:** `effort: high` (frontmatter). **Inline override:** pass
|
|
22
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
23
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
24
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
25
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
26
|
+
|
|
27
|
+
|
|
18
28
|
---
|
|
19
29
|
|
|
20
30
|
## EXECUTION MODEL
|
|
@@ -6,7 +6,7 @@ stats_enabled: {{true if invoked with -stats/--stats, else false}}
|
|
|
6
6
|
## Worktree
|
|
7
7
|
- path: {{absolute worktree path returned by worktree-manager nw-docs}}
|
|
8
8
|
- main_path: {{absolute path of the MAIN repo checkout ($MAIN) — persisted at Step 1 so finalization (validation-phase Step 7.5) never references an undefined var}}
|
|
9
|
-
- trunk_branch: {{resolved git.trunk_branch (
|
|
9
|
+
- trunk_branch: {{resolved git.trunk_branch (autodetected from origin/HEAD when the config key is absent)}}
|
|
10
10
|
- branch: prd/{{slug}}
|
|
11
11
|
- kind: docs
|
|
12
12
|
- created_at: {{ISO-8601 UTC}}
|
|
@@ -149,12 +149,17 @@ la feature prima di scrivere qualsiasi documento.
|
|
|
149
149
|
<Progress Bar>
|
|
150
150
|
```
|
|
151
151
|
|
|
152
|
-
**
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
152
|
+
**Gate (BLOCKING).** Before leaving Step 1 you MUST verify, on disk, that the
|
|
153
|
+
docs worktree actually exists: `pwd` prints the absolute worktree path AND its
|
|
154
|
+
registry entry (`kind: "docs"`) is present AND the state file exists inside the
|
|
155
|
+
worktree AND all tasks were created AND context loaded. If the worktree was NOT
|
|
156
|
+
created — e.g. `nw-docs` aborted because no trunk branch could be resolved, or
|
|
157
|
+
`.worktrees/` is not in `.gitignore` — **HALT and surface the `nw-docs` error
|
|
158
|
+
verbatim**. Do NOT show the "Ho creato la sessione PRD … in un worktree
|
|
159
|
+
dedicato" message and do NOT proceed to Discovery: writing PRD artefacts on the
|
|
160
|
+
main checkout breaks HARD RULE 17 and pollutes every parallel session. This is a
|
|
161
|
+
hard gate, not an observability note — the kickoff output above is emitted only
|
|
162
|
+
after this gate passes.
|
|
158
163
|
|
|
159
164
|
**Immediately proceed to Step 1.6** — do NOT stop here. Show the kickoff message
|
|
160
165
|
and ask the mockup intake question in the same turn.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: prd-add
|
|
3
|
+
effort: medium
|
|
3
4
|
description: "Change Request skill for active PRD sessions. Use when the user says /prd-add, 'aggiungi requisito', 'serve anche', 'manca un endpoint', or describes a new requirement that impacts an existing PRD. Also auto-triggered by /prd during discovery when the user's answer reveals a new sub-feature not covered by the original scope. Runs ICIAS impact analysis (semantic scan + structural propagation + scoring) to determine which PRD phases need SKIP/PATCH/REDO, then executes only affected phases."
|
|
4
5
|
---
|
|
5
6
|
|
|
@@ -16,6 +17,15 @@ need revision, then executes only the affected ones.
|
|
|
16
17
|
**Overlay:** loads `.baldart/overlays/prd-add.md` if present — and inherits the prd overlay's terminology + design-system reads (since prd-add operates on /prd's artifacts).
|
|
17
18
|
**On missing/empty keys:** ask the user; do not assume defaults. See `framework/agents/project-context.md` § 3.
|
|
18
19
|
|
|
20
|
+
## Effort
|
|
21
|
+
|
|
22
|
+
**Baseline:** `effort: medium` (frontmatter). **Inline override:** pass
|
|
23
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
24
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
25
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
26
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
27
|
+
|
|
28
|
+
|
|
19
29
|
---
|
|
20
30
|
|
|
21
31
|
## TRIGGER MODES
|
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: remotion-best-practices
|
|
3
|
+
effort: medium
|
|
3
4
|
description: Best practices for Remotion - Video creation in React
|
|
4
5
|
metadata:
|
|
5
6
|
tags: remotion, video, react, animation, composition
|
|
6
7
|
---
|
|
7
8
|
|
|
9
|
+
## Effort
|
|
10
|
+
|
|
11
|
+
**Baseline:** `effort: medium` (frontmatter). **Inline override:** pass
|
|
12
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
13
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
14
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
15
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
8
19
|
## When to use
|
|
9
20
|
|
|
10
21
|
Use this skills whenever you are dealing with Remotion code to obtain the domain-specific knowledge.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: seo-audit
|
|
3
|
+
effort: medium
|
|
3
4
|
version: 1.0.0
|
|
4
5
|
description: When the user wants to audit, review, or diagnose SEO issues on their site. Also use when the user mentions "SEO audit," "technical SEO," "why am I not ranking," "SEO issues," "on-page SEO," "meta tags review," or "SEO health check." For building pages at scale to target keywords, see programmatic-seo. For adding structured data, see schema-markup.
|
|
5
6
|
---
|
|
@@ -8,6 +9,15 @@ description: When the user wants to audit, review, or diagnose SEO issues on the
|
|
|
8
9
|
|
|
9
10
|
You are an expert in search engine optimization. Your goal is to identify SEO issues and provide actionable recommendations to improve organic search performance.
|
|
10
11
|
|
|
12
|
+
## Effort
|
|
13
|
+
|
|
14
|
+
**Baseline:** `effort: medium` (frontmatter). **Inline override:** pass
|
|
15
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
16
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
17
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
18
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
19
|
+
|
|
20
|
+
|
|
11
21
|
## Initial Assessment
|
|
12
22
|
|
|
13
23
|
**Check for product marketing context first:**
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: simplify
|
|
3
|
+
effort: medium
|
|
3
4
|
description: Review changed code for reuse, quality, and efficiency, then fix any issues found. Use when completing a coding task, after implementation, or when the user says /simplify. Covers deduplication (exact/near/inline), code quality patterns, and performance.
|
|
4
5
|
---
|
|
5
6
|
|
|
@@ -12,6 +13,15 @@ description: Review changed code for reuse, quality, and efficiency, then fix an
|
|
|
12
13
|
**Overlay:** loads `.baldart/overlays/simplify.md` if present — project-specific utility module paths, hook conventions.
|
|
13
14
|
**On missing/empty keys:** ask the user; do not assume defaults. See `framework/agents/project-context.md` § 3.
|
|
14
15
|
|
|
16
|
+
## Effort
|
|
17
|
+
|
|
18
|
+
**Baseline:** `effort: medium` (frontmatter). **Inline override:** pass
|
|
19
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
20
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
21
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
22
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
23
|
+
|
|
24
|
+
|
|
15
25
|
---
|
|
16
26
|
|
|
17
27
|
You are a ruthless deduplication and cleanup agent. You do not suggest. You find issues and you eliminate them.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: skill-creator
|
|
3
|
+
effort: medium
|
|
3
4
|
description: Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
|
|
4
5
|
license: Complete terms in LICENSE.txt
|
|
5
6
|
---
|
|
@@ -8,6 +9,15 @@ license: Complete terms in LICENSE.txt
|
|
|
8
9
|
|
|
9
10
|
This skill provides guidance for creating effective skills.
|
|
10
11
|
|
|
12
|
+
## Effort
|
|
13
|
+
|
|
14
|
+
**Baseline:** `effort: medium` (frontmatter). **Inline override:** pass
|
|
15
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
16
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
17
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
18
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
19
|
+
|
|
20
|
+
|
|
11
21
|
## About Skills
|
|
12
22
|
|
|
13
23
|
Skills are modular, self-contained packages that extend Claude's capabilities by providing
|
|
@@ -303,15 +313,18 @@ Any example files and directories not needed for the skill should be deleted. Th
|
|
|
303
313
|
|
|
304
314
|
##### Frontmatter
|
|
305
315
|
|
|
306
|
-
Write the YAML frontmatter with `name` and `
|
|
316
|
+
Write the YAML frontmatter with `name`, `description`, and `effort`:
|
|
307
317
|
|
|
308
318
|
- `name`: The skill name
|
|
309
319
|
- `description`: This is the primary triggering mechanism for your skill, and helps Claude understand when to use the skill.
|
|
310
320
|
- Include both what the Skill does and specific triggers/contexts for when to use it.
|
|
311
321
|
- Include all "when to use" information here - Not in the body. The body is only loaded after triggering, so "When to Use This Skill" sections in the body are not helpful to Claude.
|
|
312
322
|
- Example description for a `docx` skill: "Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. Use when Claude needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks"
|
|
323
|
+
- `effort`: The skill's baseline reasoning effort — one of `low | medium | high | xhigh | max`. Pick it by the skill's dominant cognitive load per the tiering rubric in `framework/agents/effort-protocol.md` (routine/lookup → `low`; standard authoring/review → `medium`; deep reasoning/orchestration → `high`). When in doubt, default to `medium` and let the user escalate per-run via the inline override.
|
|
324
|
+
|
|
325
|
+
Beyond `name`, `description`, and `effort`, do not include other fields in YAML frontmatter.
|
|
313
326
|
|
|
314
|
-
|
|
327
|
+
Then paste the `## Effort` body block from `framework/templates/skill-effort.snippet.md` right after `## Project Context` (or after the title if the skill has no Project Context header), so the skill honors the inline `effort=<level>` override. See `framework/agents/effort-protocol.md` for the parsing contract.
|
|
315
328
|
|
|
316
329
|
##### Body
|
|
317
330
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ui-design
|
|
3
|
+
effort: medium
|
|
3
4
|
description: "UI design workflow. Generates context-aware mockups with GAN-inspired generator/evaluator separation, visual verification via Playwright, and structured sprint contracts. Use when: (1) designing new pages or components, (2) the /prd skill reaches its UI design phase (Step 3), (3) redesigning existing pages, (4) creating design options for user review, (5) any task involving 'design UI', 'mockup', 'opzioni di design', 'progetta interfaccia', '3 opzioni', 'design page', 'UI design'. Not for: bug fixes, small tweaks, copy-only changes, or implementing an already-chosen design."
|
|
4
5
|
---
|
|
5
6
|
|
|
@@ -29,6 +30,15 @@ own mockups — separating generation from scoring keeps the quality gate honest
|
|
|
29
30
|
|
|
30
31
|
**On missing/empty keys:** ask the user; do not assume defaults. See `framework/agents/project-context.md` § 3.
|
|
31
32
|
|
|
33
|
+
## Effort
|
|
34
|
+
|
|
35
|
+
**Baseline:** `effort: medium` (frontmatter). **Inline override:** pass
|
|
36
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
37
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
38
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
39
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
40
|
+
|
|
41
|
+
|
|
32
42
|
## Working Directory (MANDATORY when invoked from `/prd`, since v3.22.0)
|
|
33
43
|
|
|
34
44
|
When `/prd` Step 3 invokes this skill, the caller passes (or sets as cwd) an
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: webapp-testing
|
|
3
|
+
effort: medium
|
|
3
4
|
description: Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
|
|
4
5
|
license: Complete terms in LICENSE.txt
|
|
5
6
|
---
|
|
@@ -13,6 +14,15 @@ license: Complete terms in LICENSE.txt
|
|
|
13
14
|
**Overlay:** loads `.baldart/overlays/webapp-testing.md` if present — project-specific test URLs, auth helpers.
|
|
14
15
|
**On missing/empty keys:** ask the user; do not assume defaults. See `framework/agents/project-context.md` § 3.
|
|
15
16
|
|
|
17
|
+
## Effort
|
|
18
|
+
|
|
19
|
+
**Baseline:** `effort: medium` (frontmatter). **Inline override:** pass
|
|
20
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
21
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
22
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
23
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
24
|
+
|
|
25
|
+
|
|
16
26
|
---
|
|
17
27
|
|
|
18
28
|
## E2E Review Integration (since v3.18.0)
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: worktree-manager
|
|
3
|
+
effort: medium
|
|
3
4
|
description: >
|
|
4
5
|
Manage fully independent git worktrees for parallel coding agents.
|
|
5
6
|
Commands: /nw (new worktree) creates an isolated workspace with its own
|
|
@@ -21,6 +22,15 @@ description: >
|
|
|
21
22
|
- `paths.metrics` — JSONL telemetry dir (default `docs/metrics`) used by the rebase conflict-resolution table.
|
|
22
23
|
- Protocol reference: `framework/agents/project-context.md`. Skills must ASK when a needed key is missing — never assume.
|
|
23
24
|
|
|
25
|
+
## Effort
|
|
26
|
+
|
|
27
|
+
**Baseline:** `effort: medium` (frontmatter). **Inline override:** pass
|
|
28
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
29
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
30
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
31
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
32
|
+
|
|
33
|
+
|
|
24
34
|
**IMMEDIATE EXECUTION**: When invoked via `/nw`, `/mw`, `/lw`, or `/cw`, do NOT explain the process. Start executing the matching command flow immediately:
|
|
25
35
|
|
|
26
36
|
- `/nw` → Ask for **slug** (required) and optionally a **card ID**, then execute all steps (pre-flight → create → install → build → report). If the user provided args, skip questions and use them directly. Supports three forms:
|
|
@@ -110,14 +120,30 @@ if [ ! -f "$MAIN_ROOT/.gitignore" ] || ! grep -qE '^\.worktrees/?$' "$MAIN_ROOT/
|
|
|
110
120
|
exit 1
|
|
111
121
|
fi
|
|
112
122
|
|
|
113
|
-
# 0b. Resolve the trunk branch
|
|
114
|
-
#
|
|
123
|
+
# 0b. Resolve the trunk branch (R7). Prefer the config key; if the consumer
|
|
124
|
+
# updated to >=4.0.0 without re-running `configure`, `git.trunk_branch` may
|
|
125
|
+
# be absent — in that case AUTODETECT the repo's real default branch
|
|
126
|
+
# (origin/HEAD → local develop/main/master) instead of hard-failing. This is
|
|
127
|
+
# NOT "assume develop": it resolves the branch the repo actually uses, the
|
|
128
|
+
# same logic configure.js applies. Only abort when even autodetection finds
|
|
129
|
+
# nothing (bare repo / no branches). Without this fallback a config missing
|
|
130
|
+
# the v4.0.0 key silently blocked every `/prd` worktree (regression v4.0.0).
|
|
115
131
|
TRUNK=$(grep -A40 '^git:' "$MAIN_ROOT/baldart.config.yml" 2>/dev/null \
|
|
116
132
|
| grep 'trunk_branch:' | head -1 \
|
|
117
133
|
| sed -E 's/.*trunk_branch:[[:space:]]*([A-Za-z0-9._\/-]+).*/\1/' || true)
|
|
118
134
|
if [ -z "$TRUNK" ]; then
|
|
119
|
-
|
|
120
|
-
|
|
135
|
+
TRUNK=$(git -C "$MAIN_ROOT" symbolic-ref --quiet refs/remotes/origin/HEAD 2>/dev/null \
|
|
136
|
+
| sed -E 's#^refs/remotes/origin/##' || true)
|
|
137
|
+
if [ -z "$TRUNK" ]; then
|
|
138
|
+
for cand in develop main master; do
|
|
139
|
+
if git -C "$MAIN_ROOT" show-ref --verify --quiet "refs/heads/$cand"; then TRUNK="$cand"; break; fi
|
|
140
|
+
done
|
|
141
|
+
fi
|
|
142
|
+
if [ -z "$TRUNK" ]; then
|
|
143
|
+
echo "ERROR: git.trunk_branch not set in baldart.config.yml and no trunk branch could be autodetected (origin/HEAD / develop / main / master). Run 'npx baldart configure' to set git.trunk_branch, or create the trunk branch first." >&2
|
|
144
|
+
exit 1
|
|
145
|
+
fi
|
|
146
|
+
echo "WARN: git.trunk_branch missing from baldart.config.yml — autodetected '$TRUNK'. Run 'npx baldart configure' to persist it and silence this warning." >&2
|
|
121
147
|
fi
|
|
122
148
|
|
|
123
149
|
# 1. Pre-flight — read-only fetch, NEVER touches main repo HEAD
|
|
@@ -344,12 +370,25 @@ Supports three modes:
|
|
|
344
370
|
# persist both onto the registry entry created in step 6 (R6). Every later step
|
|
345
371
|
# reads them from the registry with a presence guard — never from in-context state.
|
|
346
372
|
MAIN="$(git rev-parse --show-toplevel)"
|
|
373
|
+
# Prefer git.trunk_branch; autodetect the repo's real default branch if the
|
|
374
|
+
# config key is absent (consumer updated to >=4.0.0 without re-running
|
|
375
|
+
# `configure`). Same fallback as nw-docs — never hard-fail on a resolvable repo.
|
|
347
376
|
TRUNK=$(grep -A40 '^git:' "$MAIN/baldart.config.yml" 2>/dev/null \
|
|
348
377
|
| grep 'trunk_branch:' | head -1 \
|
|
349
378
|
| sed -E 's/.*trunk_branch:[[:space:]]*([A-Za-z0-9._\/-]+).*/\1/' || true)
|
|
350
379
|
if [ -z "$TRUNK" ]; then
|
|
351
|
-
|
|
352
|
-
|
|
380
|
+
TRUNK=$(git -C "$MAIN" symbolic-ref --quiet refs/remotes/origin/HEAD 2>/dev/null \
|
|
381
|
+
| sed -E 's#^refs/remotes/origin/##' || true)
|
|
382
|
+
if [ -z "$TRUNK" ]; then
|
|
383
|
+
for cand in develop main master; do
|
|
384
|
+
if git -C "$MAIN" show-ref --verify --quiet "refs/heads/$cand"; then TRUNK="$cand"; break; fi
|
|
385
|
+
done
|
|
386
|
+
fi
|
|
387
|
+
if [ -z "$TRUNK" ]; then
|
|
388
|
+
echo "ERROR: git.trunk_branch not set in baldart.config.yml and no trunk branch could be autodetected (origin/HEAD / develop / main / master). Run 'npx baldart configure' to set git.trunk_branch, or create the trunk branch first." >&2
|
|
389
|
+
exit 1
|
|
390
|
+
fi
|
|
391
|
+
echo "WARN: git.trunk_branch missing from baldart.config.yml — autodetected '$TRUNK'. Run 'npx baldart configure' to persist it." >&2
|
|
353
392
|
fi
|
|
354
393
|
|
|
355
394
|
# Fetch latest trunk from remote — read-only, does NOT touch the main repo's HEAD.
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# Effort Protocol
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Define how BALDART skills (and, by extension, agents) choose a **reasoning
|
|
6
|
+
effort** level: a per-skill *baseline* declared in frontmatter, plus a portable
|
|
7
|
+
*inline override* the user can pass at invocation time. The goal is to let
|
|
8
|
+
routine skills run lean and reasoning-heavy skills run deep — and to let the
|
|
9
|
+
user dial that up or down for a single run without touching config or
|
|
10
|
+
environment.
|
|
11
|
+
|
|
12
|
+
## Scope
|
|
13
|
+
|
|
14
|
+
**In**: The `effort:` frontmatter key, its baseline-per-skill rubric, the
|
|
15
|
+
`effort=<level>` inline-override convention, and how a skill body reacts to it.
|
|
16
|
+
**Out**: The native Claude Code effort knob mechanics themselves (slider,
|
|
17
|
+
`/effort` command, `CLAUDE_CODE_EFFORT_LEVEL`) — those are documented by Claude
|
|
18
|
+
Code, not by BALDART. This protocol only governs how skills *use* them.
|
|
19
|
+
|
|
20
|
+
## Background — the native knob and its precedence
|
|
21
|
+
|
|
22
|
+
Claude Code supports an `effort:` frontmatter key on skills and subagents with
|
|
23
|
+
values `low | medium | high | xhigh | max` (availability varies by model). When
|
|
24
|
+
that skill/subagent is active, its frontmatter effort overrides the session
|
|
25
|
+
level. The resolution order, highest first, is:
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
CLAUDE_CODE_EFFORT_LEVEL (env) > effort: frontmatter > /effort session level > model default
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Two consequences shape this protocol:
|
|
32
|
+
|
|
33
|
+
1. **The frontmatter sits *above* the session `/effort` level.** So a user
|
|
34
|
+
cannot raise a skill's effort just by running `/effort high` first — the
|
|
35
|
+
frontmatter wins. Only the global env var beats it.
|
|
36
|
+
2. **A running skill cannot mutate the effort knob itself.** There is no tool
|
|
37
|
+
for a skill to re-set its own effort mid-run.
|
|
38
|
+
|
|
39
|
+
Therefore the inline override below does **not** drive the native knob. It is a
|
|
40
|
+
**body-level reasoning escalation**: the skill reads the token from its
|
|
41
|
+
arguments and engages the corresponding *thinking directive* (`think hard` …
|
|
42
|
+
`ultrathink`), which the harness interprets from the text. This is fully
|
|
43
|
+
portable — no env var, no consumer config.
|
|
44
|
+
|
|
45
|
+
## Tiering rubric — choosing a skill's baseline
|
|
46
|
+
|
|
47
|
+
Assign the frontmatter `effort:` baseline by the skill's dominant cognitive
|
|
48
|
+
load, not by how "important" it feels:
|
|
49
|
+
|
|
50
|
+
| Baseline | When | Examples of work |
|
|
51
|
+
|----------|------|------------------|
|
|
52
|
+
| `low` | mechanical, lookup, narration over a deterministic CLI | git plumbing, listing, scaffolding from a fixed template |
|
|
53
|
+
| `medium` | standard authoring/implementation/review work | most skills — design, docs, tests, scaffolding with judgment |
|
|
54
|
+
| `high` | deep multi-step reasoning, architecture, end-to-end orchestration, structured planning | PRD authoring, root-cause analysis, deep code review |
|
|
55
|
+
| `xhigh` / `max` | reserved — set only when a skill is *consistently* a hard reasoning problem | (rare; prefer raising via inline override instead of pinning the baseline) |
|
|
56
|
+
|
|
57
|
+
Prefer a conservative baseline plus inline escalation over a permanently high
|
|
58
|
+
baseline: a `medium` skill the user can push to `high` for a hard run costs less
|
|
59
|
+
across the common case than a skill pinned `high` for every trivial invocation.
|
|
60
|
+
|
|
61
|
+
## Inline override — `effort=<level>`
|
|
62
|
+
|
|
63
|
+
**Convention.** The user may pass the token `effort=<low|medium|high|xhigh|max>`
|
|
64
|
+
anywhere in the invocation arguments, e.g.:
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
/prd effort=high Build a referral program with tiered rewards
|
|
68
|
+
/simplify effort=low
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
**Parsing contract (every skill that honors overrides MUST follow this):**
|
|
72
|
+
|
|
73
|
+
1. **Detect once, at kickoff.** Inspect `$ARGUMENTS` for a case-insensitive
|
|
74
|
+
`effort=<level>` token. Model the parse on the existing `-stats` flag in the
|
|
75
|
+
`prd` skill — detect early, before the arguments are consumed as content.
|
|
76
|
+
2. **Strip the token.** Remove `effort=<level>` from the argument string before
|
|
77
|
+
using the remainder as the user's actual input (feature text, target, etc.).
|
|
78
|
+
The token is control metadata, never part of the payload.
|
|
79
|
+
3. **Validate.** If the level is not one of the five valid values, ignore the
|
|
80
|
+
token (treat as baseline) and note it; do not error out.
|
|
81
|
+
|
|
82
|
+
## Level → behavior mapping (the body contract)
|
|
83
|
+
|
|
84
|
+
Once the effective level is known (inline override if present and valid, else
|
|
85
|
+
the frontmatter baseline), the skill applies:
|
|
86
|
+
|
|
87
|
+
| Effective level | Reasoning behavior in the body |
|
|
88
|
+
|-----------------|--------------------------------|
|
|
89
|
+
| `low` | No extended thinking. Execute directly and tersely; skip optional deliberation steps. |
|
|
90
|
+
| `medium` | Normal operation — the skill's default reasoning. |
|
|
91
|
+
| `high` | Engage **`think hard`** at each decision point / phase boundary. |
|
|
92
|
+
| `xhigh` | Engage **`think harder`** at each decision point / phase boundary. |
|
|
93
|
+
| `max` | Engage **`ultrathink`** at each decision point / phase boundary. |
|
|
94
|
+
|
|
95
|
+
**Honest limits.** Escalation *upward* is reliable (thinking keywords deepen
|
|
96
|
+
reasoning regardless of the frontmatter baseline). De-escalation *below* the
|
|
97
|
+
frontmatter baseline is best-effort: the body can skip optional deliberation,
|
|
98
|
+
but it cannot lower the native budget the frontmatter already set — only the env
|
|
99
|
+
var can. Skills should therefore pick a baseline they are comfortable paying for
|
|
100
|
+
on every run.
|
|
101
|
+
|
|
102
|
+
## The canonical body block
|
|
103
|
+
|
|
104
|
+
Every skill that ships an `effort:` baseline pastes a short `## Effort` section
|
|
105
|
+
into its body (right after `## Project Context`, or after the title for skills
|
|
106
|
+
without a Project Context header). Keep it dense — cite this module, do not
|
|
107
|
+
re-explain the mapping:
|
|
108
|
+
|
|
109
|
+
```markdown
|
|
110
|
+
## Effort
|
|
111
|
+
|
|
112
|
+
**Baseline:** `effort: <level>` (frontmatter). **Inline override:** pass
|
|
113
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
114
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
115
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
116
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
A copy-paste starter lives at `framework/templates/skill-effort.snippet.md`.
|
|
120
|
+
The `skill-creator` skill emits both the `effort:` frontmatter key and this
|
|
121
|
+
block for every new skill.
|
|
@@ -31,6 +31,7 @@ Route agents to the right module with minimal reading.
|
|
|
31
31
|
- If touching security or auth risk -> read `agents/security.md`.
|
|
32
32
|
- If touching performance limits or scaling -> read `agents/performance.md`.
|
|
33
33
|
- If touching monitoring/logging -> read `agents/observability.md`.
|
|
34
|
+
- If tuning reasoning depth — setting a skill's `effort:` baseline or honoring an inline `effort=<level>` override -> read `agents/effort-protocol.md`.
|
|
34
35
|
- If building or maintaining a derived LLM wiki overlay (`${paths.wiki_dir}/`) -> read `agents/llm-wiki-methodology.md` and invoke `wiki-curator` / `/capture`.
|
|
35
36
|
- For day-to-day status -> read and update `${paths.references_dir}/project-status.md`.
|
|
36
37
|
- For legacy context -> read `archive/project_full_legacy.md` if it exists.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
EFFORT HEADER — paste this into any BALDART skill that declares an `effort:`
|
|
3
|
+
baseline and honors the inline `effort=<level>` override.
|
|
4
|
+
|
|
5
|
+
1. Add the frontmatter key (pick the baseline per the tiering rubric):
|
|
6
|
+
|
|
7
|
+
effort: medium # one of: low | medium | high | xhigh | max
|
|
8
|
+
|
|
9
|
+
2. Paste the `## Effort` block below right after `## Project Context`
|
|
10
|
+
(or after the skill title, for skills without a Project Context header).
|
|
11
|
+
Replace <level> with the same baseline you set in frontmatter.
|
|
12
|
+
|
|
13
|
+
Full protocol: framework/agents/effort-protocol.md
|
|
14
|
+
|
|
15
|
+
Keep this header DENSE (3-4 lines). Do not re-explain the mapping —
|
|
16
|
+
cite framework/agents/effort-protocol.md instead.
|
|
17
|
+
-->
|
|
18
|
+
|
|
19
|
+
## Effort
|
|
20
|
+
|
|
21
|
+
**Baseline:** `effort: <level>` (frontmatter). **Inline override:** pass
|
|
22
|
+
`effort=<low|medium|high|xhigh|max>` anywhere in the invocation to scale
|
|
23
|
+
reasoning depth for this run — detect it once at kickoff and strip the token
|
|
24
|
+
before consuming user input. Level→behavior mapping, parsing contract, and
|
|
25
|
+
precedence caveats: `framework/agents/effort-protocol.md`.
|
package/package.json
CHANGED
package/src/commands/update.js
CHANGED
|
@@ -1172,6 +1172,11 @@ async function update(options = {}, unknownArgs = []) {
|
|
|
1172
1172
|
await configureCmd(autoYes ? { nonInteractive: true } : undefined);
|
|
1173
1173
|
} else {
|
|
1174
1174
|
UI.info('Skipped. Skills will prompt for the missing keys on first use.');
|
|
1175
|
+
if (allMissing.includes('git.trunk_branch')) {
|
|
1176
|
+
UI.warning('`git.trunk_branch` drives worktree creation in `/prd` and `/new`. '
|
|
1177
|
+
+ 'Until it is set, those skills autodetect the trunk (origin/HEAD → develop/main/master) '
|
|
1178
|
+
+ 'and warn on each run; run `npx baldart configure` to persist it and make it deterministic.');
|
|
1179
|
+
}
|
|
1175
1180
|
}
|
|
1176
1181
|
}
|
|
1177
1182
|
} catch (_) {
|