toga-ai 1.0.178 → 1.0.179
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/package.json +1 -1
- package/skills/kickoff/SKILL.md +23 -0
package/package.json
CHANGED
package/skills/kickoff/SKILL.md
CHANGED
|
@@ -375,6 +375,29 @@ Ready to proceed?
|
|
|
375
375
|
or "you have full access" — proceed without further permission prompts, but still flag any
|
|
376
376
|
write outside the expected scope.
|
|
377
377
|
|
|
378
|
+
### Write discipline — stub-first to avoid the GateGuard double-emit tax
|
|
379
|
+
|
|
380
|
+
The ECC fact-forcing gate (`gateguard-fact-force.js`, a `PreToolUse` hook) **denies the
|
|
381
|
+
first Write/Edit to each new file path per session**, then allows the retry. The gate keys
|
|
382
|
+
**only on `file_path` — it never inspects content** (verified in the hook: it `markChecked`s
|
|
383
|
+
the path on the deny, so any subsequent write to that path is allowed regardless of content).
|
|
384
|
+
|
|
385
|
+
That means generating a large file's full content on the first attempt is wasted: the attempt
|
|
386
|
+
is denied and you must re-emit the entire content on the retry — paying ~2× output tokens for
|
|
387
|
+
every large new file.
|
|
388
|
+
|
|
389
|
+
**Rule — when creating a new file (or fully rewriting a large one):**
|
|
390
|
+
|
|
391
|
+
1. First Write to that path is a **minimal stub** (one line, or empty).
|
|
392
|
+
2. Present the gate's facts / do the real investigation (this is the gate's actual quality
|
|
393
|
+
purpose — keep it for code).
|
|
394
|
+
3. Write the **full content** on the second call — it passes on the first real attempt.
|
|
395
|
+
|
|
396
|
+
Full content is emitted **once**. Scope note: the win is **large new-file Writes**. `Edit`s
|
|
397
|
+
also gate once per file, but `old_string`/`new_string` are small, so stub-first isn't worth
|
|
398
|
+
it there. Markdown doc trees are already gate-exempt via `GATEGUARD_EDIT_EXEMPT` — no stub
|
|
399
|
+
needed for those.
|
|
400
|
+
|
|
378
401
|
---
|
|
379
402
|
|
|
380
403
|
### Agent selection (how to build the plan internally)
|