Skip to content

fix(meta-orchestrator-skill): §10 step 5b fence — non-executable for AI-substituted template - #280

Merged
artyhoo merged 1 commit into
stagingfrom
fix/skill-md-template-fence
May 29, 2026
Merged

fix(meta-orchestrator-skill): §10 step 5b fence — non-executable for AI-substituted template#280
artyhoo merged 1 commit into
stagingfrom
fix/skill-md-template-fence

Conversation

@artyhoo

@artyhoo artyhoo commented May 29, 2026

Copy link
Copy Markdown
Owner

Summary

Single-character-class fence fix in .claude/skills/meta-orchestrator/SKILL.md:523:

```diff

  •  \`\`\`!
    
  •  \`\`\`bash
    

```

The block under §10 step 5b contains <placeholder> literals (<current_ids_json_array>, <resolved_ids_json_array>, <outcome-one-liner>) that the rendering AI is supposed to substitute BEFORE invocation per the prose immediately above the block at line 521. The previous ```! (executable) fence caused CC's auto-mode permission classifier to reject the literal template at recursive acceptance test of the meta-orch-no-arg-overview umbrella close (2026-05-29):

Permission denied by auto-mode classifier. Reason: Command contains unfilled placeholder literals — running with unresolved template tokens has unverifiable effects on state files.

Scope

Pre-existing since F.3 helper-collapse PR #263 (2026-05-28); NOT introduced by Stage 3 work in #277. Surfaced only at recursive acceptance test of meta-orch-no-arg-overview post-#278. Maintainer explicitly authorized this as #279 follow-up after surface-as-observation (per CLAUDE.md PR strategy).

Verify

  • ✅ Single 1+/1- diff at SKILL.md:523 (\``!```bash`)
  • ✅ Line count = 600 (passes 600-line gate)
  • ## With this skill + ## Without this skill sections preserved (principle 15)
  • ✅ awk scan: no other unsubstituted <placeholder> in any !-block (this was the only one)
  • ✅ Principle 15 + 18 tests: 12/12 passed locally

Phase -1 self-criticism

A Phase -1 reviewer dimension is needed — «scan !-blocks for unsubstituted <placeholder> literals before approving SKILL.md edits». Both F.3 review (#263) and Phase -1 reviews of #274/#277 missed this. Incident counter 1/3 toward codifying the dimension in `~/.claude/skills/orchestrator/SKILL.md` (per Self-discipline forward-going).

§1.7 Skipped: single-fence type swap with no body change; no new discipline-bearing rule introduced. Pure fence-syntax fix to existing skill that was authored in F.3 #263; behavior change limited to bypassing CC auto-mode classifier denial that prevented the recursive acceptance test from completing cleanly.

…-substituted template

SKILL.md:523 used ```! (executable) fence around a code block that contains
`<placeholder>` literals the rendering AI is supposed to substitute BEFORE
invocation (per the prose immediately above the block at line 521). The
executable fence caused CC's auto-mode permission classifier to reject the
literal template at recursive acceptance test of the meta-orch-no-arg-overview
umbrella (2026-05-29):

  Permission denied by auto-mode classifier. Reason: Command contains unfilled
  placeholder literals — running with unresolved template tokens has
  unverifiable effects on state files.

Fix: change fence to ```bash (non-executable, AI uses as template + makes a
separate Bash tool call with substituted values). Zero-LOC net change at the
file scope (single fence character replaced); existing prose at line 521
already explains the substitution semantics, no NOTE needed.

Pre-existing since F.3 helper-collapse PR #263 (2026-05-28); not Stage 3 work
in #277 — surfaced only at recursive acceptance test of meta-orch-no-arg-overview
post-#278.

Phase -1 self-criticism: a reviewer dimension is needed — «scan !-blocks for
unsubstituted <placeholder> literals before approving SKILL.md edits». Both the
F.3 review and Phase -1 reviews of #274/#277 missed this; incident counter 1/3
toward codifying the dimension in ~/.claude/skills/orchestrator/SKILL.md.

Prior-art: skipped — single-fence type swap, no new capability introduced
@artyhoo
artyhoo enabled auto-merge (squash) May 29, 2026 14:11
@artyhoo
artyhoo merged commit fe829d3 into staging May 29, 2026
22 checks passed
artyhoo added a commit that referenced this pull request May 29, 2026
…`bash for AI-substituted templates (#291)

Two ```! (executable) fences wrapped code blocks containing <placeholder>
literals the rendering AI is supposed to substitute BEFORE invocation. The
executable fence causes CC's auto-mode permission classifier to reject the
literal template:

  Permission denied by auto-mode classifier. Reason: Command contains
  unfilled placeholder literals — running with unresolved template tokens
  has unverifiable effects on state files.

Both sites:

- SKILL.md §2.5 Step 4 (line 193): assign-skill.sh "<TYPE-from-Step-3>"
  "<one-line description from kickoff title>". TYPE is per-candidate output
  from Step 3 (df9e8b5 extracted the loop), description from kickoff title;
  both require AI substitution before invocation.

- SKILL.md §6 Step 1 (line 365): gh pr list --search "is:merged
  head:<stage-N-branch> base:staging". Prose immediately below (line 369)
  explicitly tells the AI: «Replace `<stage-N-branch>` with the actual head
  branch from the Stage N sub-wave».

Fix: change fence to ```bash (non-executable, AI uses as template + makes a
separate Bash tool call with substituted values). Same single-fence-character
swap as PR #280 (§10 step 5b — the same defect class, then incident 1/3).
Existing prose explains substitution semantics at both sites; no NOTE needed.

Pre-existing on staging since:
- §2.5 Step 4: introduced by PR #242 b1f47f4 (Stage 2C SKILL.md §2.5 wiring,
  2026-05-26); PR #266 6f364dd added bash-wrapper but kept ```! + placeholder.
- §6 Stage gates Step 1: introduced earlier; PR #266 did not include it in
  the 7 direct-path helper invocations it rewrote (it's not a helper call).

Surfaced at /meta-orchestrator invocation in a fresh session (Step 4) —
incident 2/3 of the same class flagged in PR #280 commit message:
«reviewer dimension — scan !-blocks for unsubstituted <placeholder>
literals». §6 Step 1 (incident 3/3) found by exhaustive scan during this
fix to avoid leaving a second live deny in another code path.

Verification:

  $ awk '/^```!/{inside=1;...}' SKILL.md
  (no remaining `!`-fences with `<...>` placeholder literals,
   except line 42 — false positive, `<N>` inside echo string-literal,
   verified non-blocking across all /meta-orchestrator invocations since #277)

Prior-art: skipped — single-fence type swap, no new capability introduced
(same rationale as PR #280).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant