Single-commit clean baseline after security scrub of niche-tells, project codenames, internal jargon, and contributor-email leaks. Contents: - 100 Rust crates (_primitives/_rust/) - 37 agent manifests (_manifests/) + generated specs (_generated/) - 67 user-invocable skills (skills/) - 33 hooks (hooks/) - Composition blocks (_blocks/) - Documentation (docs/, README.md) - TS adapter packages (_ts_packages/) - Assembler (_assembler/) - Roles (_roles/) - Templates (_templates/) - Forgejo CI (.forgejo/) Author: Denis Parfionovich <info@greendragon.info> License: see LICENSE.
91 lines
3.3 KiB
Markdown
91 lines
3.3 KiB
Markdown
# Phase 2 — Task description (the only typed phase)
|
|
|
|
> Goal: capture a 1-3 sentence task description. This is the SOLE free-text
|
|
> input in the skill.
|
|
> **Verify criterion:** `TASK` non-empty, ≤2000 chars, not a single word.
|
|
|
|
---
|
|
|
|
## 2.a — Prompt
|
|
|
|
Print this exact message to the user (NOT an AskUserQuestion — regular chat):
|
|
|
|
> Describe the task in 1-3 sentences. Be concrete about the deliverable.
|
|
>
|
|
> Good: "Add a --verbose flag to kei-ledger list that prints the parent_branch and dna columns. Update the integration test accordingly."
|
|
>
|
|
> Weak: "Improve ledger output" (too vague, agent will ask clarifying questions and burn turns).
|
|
>
|
|
> Excellent tasks name: (1) the target file or module, (2) the verifiable
|
|
> deliverable, (3) any existing pattern to mirror.
|
|
|
|
Wait for the user's reply. Capture the full message as `TASK`.
|
|
|
|
---
|
|
|
|
## 2.b — Validation
|
|
|
|
Apply these checks in order. On any failure, re-print the guidance and
|
|
ask again. Do NOT fall through to Phase 3 on failure.
|
|
|
|
1. **Non-empty.** `len(TASK.trim()) > 0`.
|
|
2. **Minimum length.** `len(TASK.trim()) >= 20`. Shorter than 20 chars is
|
|
almost certainly a single-word request — ask for more detail.
|
|
3. **Maximum length.** `len(TASK) <= 2000`. If longer, ask the user to
|
|
trim: `kei-spawn` accepts up to 4000 chars but tasks >2000 typically
|
|
indicate the user is trying to write the agent's plan for it. Push back.
|
|
4. **No secrets.** Quick regex scan for `sk-`, `ghp_`, `Bearer `, `AKIA`,
|
|
`xoxb-`, `-----BEGIN`, `:AAG` (Telegram bot token infix). If any hits,
|
|
STOP and ask the user to remove — tokens belong in `~/.claude/secrets/.env`
|
|
per RULE 0.8, never in task descriptions.
|
|
5. **No git commands.** If `TASK` contains `git commit`, `git push`,
|
|
`git add`, `git merge`, warn the user that per RULE 0.13 the spawned
|
|
agent will be explicitly banned from git — if the task REQUIRES git
|
|
operations, this skill is the wrong tool (use `/new-project` or
|
|
orchestrator-meta flow instead).
|
|
|
|
---
|
|
|
|
## 2.c — Auto-augmentation
|
|
|
|
Before storing `TASK`, prepend a fixed preamble so the spawned agent sees
|
|
the orchestrator-branch-first rule verbatim. This is NOT optional — RULE
|
|
0.13 requires the ban-phrase in every non-trivial agent prompt:
|
|
|
|
```
|
|
You MUST NOT invoke git, bash state-changing commands, or shell commands
|
|
that mutate the repo. Tools allowed: Read, Write, Edit, Glob, Grep (plus
|
|
read-only Bash for explorer role; test-runners only for edit-* roles).
|
|
Write files to the paths inside the whitelist. Return a file-list block
|
|
in your final report. Orchestrator owns git.
|
|
|
|
--- TASK ---
|
|
|
|
<user's TASK here, verbatim>
|
|
```
|
|
|
|
Store the composed prompt as `TASK_FULL`. Keep the raw user text as
|
|
`TASK` for the report.
|
|
|
|
---
|
|
|
|
## 2.d — Verify criterion
|
|
|
|
Both `TASK` and `TASK_FULL` populated. `TASK` passes all 5 validation
|
|
checks. Emit a single-line confirmation:
|
|
|
|
`Task captured: <first 60 chars of TASK>... (<N> chars)`
|
|
|
|
Proceed to Phase 3.
|
|
|
|
---
|
|
|
|
## 2.e — Failure paths (NO DOWNGRADE)
|
|
|
|
If the user cannot articulate the task after two prompts:
|
|
|
|
- (A) Suggest invoking `/research` or `/debug-deep` first to clarify the
|
|
problem, then return to `/spawn-agent` once the deliverable is concrete.
|
|
- (B) Offer to scaffold a skeleton task description from the user's rough
|
|
words — show the skeleton, ask for approval.
|
|
- (C) Abort this invocation — better no agent than a confused one.
|