Skip to content

Extract Feedback Rejection Flow into a lazy spacedock-owned skill#297

Merged
clkao merged 2 commits into
nextfrom
spacedock-ensign/feedback-rejection-flow-skill-extraction
Jun 4, 2026
Merged

Extract Feedback Rejection Flow into a lazy spacedock-owned skill#297
clkao merged 2 commits into
nextfrom
spacedock-ensign/feedback-rejection-flow-skill-extraction

Conversation

@clkao
Copy link
Copy Markdown
Collaborator

@clkao clkao commented Jun 4, 2026

The feedback-rejection procedure loaded on every FO boot but fires only when a gate rejects; this lifts it into a lazy skill.

What changed

  • Move the 7-step feedback-rejection procedure into skills/feedback-rejection-flow/SKILL.md, byte-identical.
  • Rewrite the ## Completion and Gates detection bullets to invoke Skill(skill="spacedock:feedback-rejection-flow"); keep ### Feedback Cycles, reuse-conditions, and the bare-mode seam always-on.
  • Add feedback_rejection_flow_test.go oracles: present-in-skill, whole-file absence, Skill()-seam, name-matches-seam, user-invocable, faithfulness clauses, bare-mode-seam-consistent.
  • Harden the @-include ban to whole-file, name-targeted.

Evidence

  • Offline go test ./...: 14/14 packages passed; a live reject→route→re-review drive routed correctly through the lazy skill.
  • Moved block byte-identical to next (sha 1f24e1eb); the detached adversarial audit's one Material finding (region-scoped @-ban) is closed.

a9

clkao and others added 2 commits June 4, 2026 11:39
Move the 7-step feedback-rejection procedure body verbatim out of
first-officer-shared-core.md into skills/feedback-rejection-flow/SKILL.md
(name: feedback-rejection-flow, user-invocable: false). The rejection
DETECTION stays always-on: the two ## Completion and Gates bullets now
invoke Skill(skill="spacedock:feedback-rejection-flow") instead of
re-stating the procedure. The ### Feedback Cycles write-scope rules, the
reuse conditions, and the budget probe stay always-on (the procedure
references them by name).

Add skills/integration/feedback_rejection_flow_test.go (AC-1 a-d + AC-2:
present-in-skill, absent-from-core, Skill() invocation + structural
no-@-token ban, always-on machinery retained, faithfulness clauses, the
Claude bare-mode adapter seam, and the hardened name==seam /
user-invocable:false oracles). Add feedback-rejection-flow to userSkills.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…Cycle 1)

The @feedback-rejection-flow-include absence assertion in
TestFOCoreInvokesFeedbackRejectionSkill was region-scoped to
## Completion and Gates, so a stale include re-introduced in any other
core section was invisible. Replace the blanket region-scoped @\S
(feedbackAtToken) with a name-targeted whole-file regex
@(?:\.{1,2}/)*feedback-rejection-flow\b (feedbackAtInclude), scanned over
the whole first-officer-shared-core.md. The positive Skill() check stays
region-scoped to the detection point. Name-targeting (not bare @\S
whole-file) keeps a legitimate unrelated @references include from
false-firing.

Tests only — skill body and first-officer-shared-core.md untouched.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@clkao clkao temporarily deployed to CI-E2E-CODEX June 4, 2026 20:13 — with GitHub Actions Inactive
@clkao clkao temporarily deployed to CI-E2E-OPUS June 4, 2026 20:13 — with GitHub Actions Inactive
@clkao clkao merged commit d3580eb into next Jun 4, 2026
4 checks passed
clkao added a commit that referenced this pull request Jun 4, 2026
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