mirror of
https://github.com/alirezarezvani/claude-skills.git
synced 2026-08-28 04:24:58 +00:00
fix(agent-launcher): make SKILL.md path references resolvable — unblocks the G1 CI gate for every PR
The freshly merged agent-launcher plugin's six SKILL.md files referenced scripts and references relative to the plugin root (skills/<s>/scripts/x.py, references/x.md), which resolves from none of the path linter's bases — so check_paths.py --all fails on dev with 24 findings, and G1 is a blocking gate on every future PR. Script commands now use repo-relative paths and reference labels use the skill-dir-relative ../../references/ form that the existing markdown link targets already used. 0 unresolvable after the fix. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Qgc6RYXWJPr5oW9DHU7zR4
This commit is contained in:
parent
bf005356e0
commit
95459ffd2b
6 changed files with 24 additions and 24 deletions
|
|
@ -17,7 +17,7 @@ a workflow**. Heavy intake stays in the forked context; the parent gets a digest
|
|||
|
||||
Inspired by Anthropic's `launch-your-agent` reference skill (Apache-2.0). This is
|
||||
an independent re-implementation; CMA semantics come from
|
||||
[`references/cma-primitives.md`](../../references/cma-primitives.md).
|
||||
[`../../references/cma-primitives.md`](../../references/cma-primitives.md).
|
||||
|
||||
## The through-line: the session goal
|
||||
|
||||
|
|
@ -31,7 +31,7 @@ the phase + recurrence selects the loop shape.
|
|||
Run the router, then act on its exit code:
|
||||
|
||||
```bash
|
||||
python3 skills/agent-launcher-orchestrator/scripts/goal_router.py --out-dir ./my-agent
|
||||
python3 agent-launcher/skills/agent-launcher-orchestrator/scripts/goal_router.py --out-dir ./my-agent
|
||||
# exit 0 ROUTE -> fork to the named phase sub-skill
|
||||
# exit 3 ASK -> ask the one printed forcing question, then re-route
|
||||
# exit 4 REFUSE -> goal too vague; get one sentence, then re-route
|
||||
|
|
@ -48,13 +48,13 @@ python3 skills/agent-launcher-orchestrator/scripts/goal_router.py --out-dir ./my
|
|||
## Compile the loop
|
||||
|
||||
```bash
|
||||
python3 skills/agent-launcher-orchestrator/scripts/loop_compiler.py \
|
||||
python3 agent-launcher/skills/agent-launcher-orchestrator/scripts/loop_compiler.py \
|
||||
--out-dir ./my-agent --max-iterations 5 --cron "0 9 * * *" --timezone Europe/Berlin --nest-outcome
|
||||
```
|
||||
|
||||
`loop_compiler.py` emits `plan.v1`: `single-pass`, `grade-iterate` (always with a
|
||||
`max_iterations` cap 1..20), or `cron-loop` (optionally nesting a self-grading
|
||||
outcome per firing). See [`references/loops-and-workflows.md`](../../references/loops-and-workflows.md).
|
||||
outcome per firing). See [`../../references/loops-and-workflows.md`](../../references/loops-and-workflows.md).
|
||||
|
||||
## Pre-flight gates (hard refusals)
|
||||
|
||||
|
|
|
|||
|
|
@ -14,15 +14,15 @@ This is the plugin's **loop**: CMA's `outcome` primitive self-grades the agent's
|
|||
work in an isolated context and feeds failing verdicts back for the next attempt.
|
||||
It is **always bounded** by `max_iterations` (1..20) — never "improve forever".
|
||||
|
||||
See [`references/loops-and-workflows.md`](../../references/loops-and-workflows.md)
|
||||
See [`../../references/loops-and-workflows.md`](../../references/loops-and-workflows.md)
|
||||
and the outcome section of
|
||||
[`references/cma-primitives.md`](../../references/cma-primitives.md).
|
||||
[`../../references/cma-primitives.md`](../../references/cma-primitives.md).
|
||||
|
||||
## Workflow
|
||||
|
||||
1. **Define the outcome.**
|
||||
```bash
|
||||
python3 skills/grade-iterate/scripts/outcome_builder.py \
|
||||
python3 agent-launcher/skills/grade-iterate/scripts/outcome_builder.py \
|
||||
--sheet ./my-agent/build-sheet.json --max-iterations 5 \
|
||||
--out ./my-agent/payloads/outcome.json
|
||||
```
|
||||
|
|
@ -30,7 +30,7 @@ and the outcome section of
|
|||
payload as a `user.define_outcome` event (append to the running session).
|
||||
2. **Read every verdict first.**
|
||||
```bash
|
||||
python3 skills/grade-iterate/scripts/verdict_reader.py --result ./my-agent/last-verdict.json
|
||||
python3 agent-launcher/skills/grade-iterate/scripts/verdict_reader.py --result ./my-agent/last-verdict.json
|
||||
```
|
||||
Tables the rubric outcome and recommends: **SHIP** (`satisfied`), **SHARPEN**
|
||||
then re-run (`needs_revision`), **ESCALATE** (`max_iterations_reached` /
|
||||
|
|
@ -40,7 +40,7 @@ and the outcome section of
|
|||
run halts at the cap and escalates. Don't burn the budget on cosmetic edits.
|
||||
4. **Once a version passes, run held-back eval.**
|
||||
```bash
|
||||
python3 skills/grade-iterate/scripts/eval_scaffold.py \
|
||||
python3 agent-launcher/skills/grade-iterate/scripts/eval_scaffold.py \
|
||||
--sheet ./my-agent/build-sheet.json --out ./my-agent/eval.json --concurrency 5
|
||||
```
|
||||
Held-back cases (never seen during iteration) run in parallel, capped at the
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ compatible_tools: [claude-code, codex-cli, cursor, antigravity, opencode, gemini
|
|||
# Phase 1 — Interview → Plan
|
||||
|
||||
Open warmly with one or two examples from
|
||||
[`references/examples-bank.md`](../../references/examples-bank.md), then interview
|
||||
[`../../references/examples-bank.md`](../../references/examples-bank.md), then interview
|
||||
the founder into a **build sheet**. No API key needed in this phase — the output
|
||||
is a plan.
|
||||
|
||||
|
|
@ -26,7 +26,7 @@ is a plan.
|
|||
| **Done** | "How would you grade a good run?" | outcome `rubric` (required) |
|
||||
| **Recurrence** | "Once, on request, or on a cadence?" | single-pass / grade-loop / cron-loop |
|
||||
|
||||
See [`references/interview-to-config.md`](../../references/interview-to-config.md)
|
||||
See [`../../references/interview-to-config.md`](../../references/interview-to-config.md)
|
||||
for the full mapping.
|
||||
|
||||
## Workflow
|
||||
|
|
@ -35,7 +35,7 @@ for the full mapping.
|
|||
invent specifics they didn't claim.
|
||||
2. **Map to primitives.**
|
||||
```bash
|
||||
python3 skills/interview/scripts/interview_planner.py \
|
||||
python3 agent-launcher/skills/interview/scripts/interview_planner.py \
|
||||
--job "Triage overnight support email" --trigger schedule \
|
||||
--inputs "gmail,memory" --actions "label,reply" \
|
||||
--dod "one label per email, grounded reason, no invented facts" \
|
||||
|
|
@ -46,11 +46,11 @@ for the full mapping.
|
|||
deferrals** behind `always_ask`.
|
||||
3. **Assemble the sheet.**
|
||||
```bash
|
||||
python3 skills/interview/scripts/build_sheet_builder.py --plan ./my-agent/plan.json --out-dir ./my-agent
|
||||
python3 agent-launcher/skills/interview/scripts/build_sheet_builder.py --plan ./my-agent/plan.json --out-dir ./my-agent
|
||||
```
|
||||
4. **Validate limits.**
|
||||
```bash
|
||||
python3 skills/interview/scripts/primitives_validator.py --sheet ./my-agent/build-sheet.json
|
||||
python3 agent-launcher/skills/interview/scripts/primitives_validator.py --sheet ./my-agent/build-sheet.json
|
||||
```
|
||||
FAIL blocks progress; fix and re-run. WARN is advisory (surface it).
|
||||
5. **Record the plan in the goal.** `goal_state.py set --phase stage-launch
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ A **scheduled deployment** fires a fresh session on a cron cadence — the agent
|
|||
runs without you. Each firing can carry its own outcome, nesting the bounded
|
||||
grade→iterate loop inside every recurring run.
|
||||
|
||||
See [`references/loops-and-workflows.md`](../../references/loops-and-workflows.md).
|
||||
See [`../../references/loops-and-workflows.md`](../../references/loops-and-workflows.md).
|
||||
|
||||
## Choose the trigger
|
||||
|
||||
|
|
@ -28,14 +28,14 @@ See [`references/loops-and-workflows.md`](../../references/loops-and-workflows.m
|
|||
|
||||
1. **Validate the schedule.**
|
||||
```bash
|
||||
python3 skills/run-without-you/scripts/cron_validator.py --cron "0 9 * * *" --timezone Europe/Berlin
|
||||
python3 agent-launcher/skills/run-without-you/scripts/cron_validator.py --cron "0 9 * * *" --timezone Europe/Berlin
|
||||
```
|
||||
Invalid cron/timezone → exit 1. Read the **DST note**: wall-clock semantics mean
|
||||
spring-forward times are skipped and fall-back times fire twice — avoid
|
||||
02:00–03:00 in DST zones if exactly-once matters.
|
||||
2. **Build the deployment payload.**
|
||||
```bash
|
||||
python3 skills/run-without-you/scripts/deployment_builder.py \
|
||||
python3 agent-launcher/skills/run-without-you/scripts/deployment_builder.py \
|
||||
--sheet ./my-agent/build-sheet.json --agent-id agent_123 --env-id env_456 \
|
||||
--nest-outcome --out ./my-agent/payloads/deployment.json
|
||||
```
|
||||
|
|
@ -46,7 +46,7 @@ See [`references/loops-and-workflows.md`](../../references/loops-and-workflows.m
|
|||
leave the cron in place. Pin the agent version in the deployment once it passes.
|
||||
4. **Finalize the roadmap.**
|
||||
```bash
|
||||
python3 skills/run-without-you/scripts/next_directions_writer.py \
|
||||
python3 agent-launcher/skills/run-without-you/scripts/next_directions_writer.py \
|
||||
--sheet ./my-agent/build-sheet.json --loop-shape cron-loop --last-verdict satisfied --out-dir ./my-agent
|
||||
```
|
||||
5. **Advance + hand to wrap-up.** `goal_state.py set --phase wrap-up`, then invoke
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ their own key. **No script here touches the network or the key** — the user ru
|
|||
|
||||
1. **Generate payloads.**
|
||||
```bash
|
||||
python3 skills/stage-launch/scripts/payload_generator.py \
|
||||
python3 agent-launcher/skills/stage-launch/scripts/payload_generator.py \
|
||||
--sheet ./my-agent/build-sheet.json --out-dir ./my-agent
|
||||
# -> ./my-agent/payloads/{01-environment,02-agent,03-session,04-kickoff}.json
|
||||
```
|
||||
|
|
@ -26,14 +26,14 @@ their own key. **No script here touches the network or the key** — the user ru
|
|||
the agent payload's `permission_policies`).
|
||||
2. **Write the launch script.**
|
||||
```bash
|
||||
python3 skills/stage-launch/scripts/launch_script_writer.py --out-dir ./my-agent
|
||||
python3 agent-launcher/skills/stage-launch/scripts/launch_script_writer.py --out-dir ./my-agent
|
||||
```
|
||||
`launch.sh` creates environment → agent → session → kickoff **in order**,
|
||||
chaining IDs, and **resumes** on re-run (each step skips if its `*.id` file
|
||||
exists). It reads `$ANTHROPIC_API_KEY` at runtime.
|
||||
3. **Validate before launch.**
|
||||
```bash
|
||||
python3 skills/stage-launch/scripts/payload_validator.py --dir ./my-agent
|
||||
python3 agent-launcher/skills/stage-launch/scripts/payload_validator.py --dir ./my-agent
|
||||
```
|
||||
FAIL blocks — especially a `key_leak` finding. Fix and re-run.
|
||||
4. **Minimal key step (never in chat).** Check the shell first:
|
||||
|
|
|
|||
|
|
@ -18,14 +18,14 @@ and name the next 1–2 upgrades so the founder leaves with a clear roadmap. The
|
|||
|
||||
1. **Inventory what they own.**
|
||||
```bash
|
||||
python3 skills/wrap-up/scripts/primitives_inventory.py \
|
||||
python3 agent-launcher/skills/wrap-up/scripts/primitives_inventory.py \
|
||||
--sheet ./my-agent/build-sheet.json --goal ./my-agent/goal.json
|
||||
```
|
||||
Tables agent / environment / session / memory / outcome / deployment and the
|
||||
phases completed.
|
||||
2. **Regenerate the overview page.**
|
||||
```bash
|
||||
python3 skills/wrap-up/scripts/overview_page.py \
|
||||
python3 agent-launcher/skills/wrap-up/scripts/overview_page.py \
|
||||
--sheet ./my-agent/build-sheet.json --out-dir ./my-agent \
|
||||
--status live --loop-shape cron-loop --last-verdict satisfied
|
||||
```
|
||||
|
|
@ -33,7 +33,7 @@ and name the next 1–2 upgrades so the founder leaves with a clear roadmap. The
|
|||
assets) — shareable as-is.
|
||||
3. **Suggest the next moves.**
|
||||
```bash
|
||||
python3 skills/wrap-up/scripts/upgrade_suggester.py --sheet ./my-agent/build-sheet.json --top 2
|
||||
python3 agent-launcher/skills/wrap-up/scripts/upgrade_suggester.py --sheet ./my-agent/build-sheet.json --top 2
|
||||
```
|
||||
Ranks recorded deferrals (v1 before v2, real-integration first) plus standing
|
||||
hardening (tighten networking, pin the agent version, nest an outcome).
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue