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.
Files changed (38) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/VERSION +1 -1
  3. package/framework/.claude/skills/api-design-principles/SKILL.md +10 -0
  4. package/framework/.claude/skills/baldart-push/SKILL.md +10 -0
  5. package/framework/.claude/skills/baldart-update/SKILL.md +10 -0
  6. package/framework/.claude/skills/bug/SKILL.md +10 -0
  7. package/framework/.claude/skills/capture/SKILL.md +10 -0
  8. package/framework/.claude/skills/context-primer/SKILL.md +10 -0
  9. package/framework/.claude/skills/copywriting/SKILL.md +10 -0
  10. package/framework/.claude/skills/design-system-init/SKILL.md +10 -0
  11. package/framework/.claude/skills/doc-writing-for-rag/SKILL.md +10 -0
  12. package/framework/.claude/skills/e2e-review/SKILL.md +10 -0
  13. package/framework/.claude/skills/find-skills/SKILL.md +10 -0
  14. package/framework/.claude/skills/frontend-design/SKILL.md +10 -0
  15. package/framework/.claude/skills/gamification-design/SKILL.md +10 -0
  16. package/framework/.claude/skills/issue-review/SKILL.md +10 -0
  17. package/framework/.claude/skills/kie-ai/SKILL.md +10 -0
  18. package/framework/.claude/skills/lsp-bootstrap/SKILL.md +10 -0
  19. package/framework/.claude/skills/motion-design/SKILL.md +10 -0
  20. package/framework/.claude/skills/new/SKILL.md +13 -3
  21. package/framework/.claude/skills/overlay/SKILL.md +10 -0
  22. package/framework/.claude/skills/playwright-skill/SKILL.md +10 -0
  23. package/framework/.claude/skills/prd/SKILL.md +10 -0
  24. package/framework/.claude/skills/prd/assets/state-template.md +1 -1
  25. package/framework/.claude/skills/prd/references/discovery-phase.md +11 -6
  26. package/framework/.claude/skills/prd-add/SKILL.md +10 -0
  27. package/framework/.claude/skills/remotion-best-practices/SKILL.md +11 -0
  28. package/framework/.claude/skills/seo-audit/SKILL.md +10 -0
  29. package/framework/.claude/skills/simplify/SKILL.md +10 -0
  30. package/framework/.claude/skills/skill-creator/SKILL.md +15 -2
  31. package/framework/.claude/skills/ui-design/SKILL.md +10 -0
  32. package/framework/.claude/skills/webapp-testing/SKILL.md +10 -0
  33. package/framework/.claude/skills/worktree-manager/SKILL.md +45 -6
  34. package/framework/agents/effort-protocol.md +121 -0
  35. package/framework/agents/index.md +1 -0
  36. package/framework/templates/skill-effort.snippet.md +25 -0
  37. package/package.json +1 -1
  38. 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.0
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; default `develop`), `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
+ **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` (default `develop` only when the key is absent). Persist it 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 config".
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`, default `develop`). `$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.**
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 (default develop)}}
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
- **MONITORING SIGNAL (non-blocking):** docs worktree created (registry entry with
153
- `kind: "docs"` present) AND state file exists on disk inside the worktree AND
154
- all tasks created AND context loaded. These are logged for observability; they
155
- do not halt execution. Precondition failures that would surface as a STOP are
156
- already handled by the BLOCKING gates in points 3 and 4 above — this note is
157
- a post-completion consistency reminder only, not an additional gate.
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 `description`:
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
- Do not include any other fields in YAML frontmatter.
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 from config (R7) no bare 'develop' literal.
114
- # TRUNK MUST be non-empty before any fetch/branch.
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
- echo "ERROR: git.trunk_branch not set in baldart.config.yml ASK the user (never assume 'develop')." >&2
120
- exit 1
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
- echo "ERROR: git.trunk_branch not set in baldart.config.yml ASK the user (never assume 'develop')." >&2
352
- exit 1
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "baldart",
3
- "version": "4.1.0",
3
+ "version": "4.2.0",
4
4
  "description": "Claude Agent Framework - Reusable framework for coordinating AI agents and humans in software projects",
5
5
  "bin": {
6
6
  "baldart": "./bin/baldart.js"
@@ -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 (_) {