Skip to content

feat(goalify): write condition to file and reorder output - #256

Merged
bkrabach merged 1 commit into
mainfrom
feature/goalify-output-file-and-ordering
Aug 4, 2026
Merged

feat(goalify): write condition to file and reorder output#256
bkrabach merged 1 commit into
mainfrom
feature/goalify-output-file-and-ordering

Conversation

@bkrabach

@bkrabach bkrabach commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator

Three changes to the goalify skill's output, all in SKILL.md (no code):

  1. The composed goal condition is now written to a file in addition to being rendered inline, so the user can open and edit it rather than hand-copying fenced text. Because @-mentions in a goal condition are expanded at set time, the file can then be handed straight to /goal @<path> and its full content becomes the condition — which makes an edit-then-run loop natural.

  2. The inline rendering is kept, so the condition is still reviewable in the flow of conversation without opening anything.

  3. The next-step command moved to the very end, after the lint table. Whatever sits closest to the user's input is what they act on; previously that was the lint table, now it is the copy-pasteable /goal @<path>, framed as the step to take after saving any edits.

Verification. Tested by real runs, not inspection: the file is written where the skill says, its content matches the inline rendering, the /goal @<path> line is literally last in the output, and both shipped known-bad fixtures still get blocked (the L1 fixture fires L1; the L2 fixture fires L2 and L0) — the lint is untouched. Test suite 1297 passed, identical to baseline.

Output format now:
1. Write the composed condition to .amplifier/goals/<slug>.md (creating
   the directory if needed), stating the path written.
2. Render the same condition inline in a fenced code block (unchanged).
3. Lint table (unchanged).
4. Recommended next step, now last: offer /goal @<path> framed as the
   step to take once any edits to the file are saved.

Previously the offer to run /goal was the last line before the file-write
change (there was no file write); the lint table was the last thing
rendered. Proximity to the user's next input now lands on the
copy-pasteable /goal @<path> command instead of the lint table.

Phase 1-3 (extract/compose/lint) are unchanged. Verified against the two
known-bad example fixtures in examples/ via a live amplifier run --mode
single subprocess: the L1 fixture still fires L1 (plus L5/L0) on the
as-given text, and the L2 fixture still fires L2 and L0 on the as-given
text, before the skill's existing rewrite-and-relint loop clears them.

Bump version 1.1.0 -> 1.2.0.

🤖 Generated with [Amplifier](https://github.com/microsoft/amplifier)

Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
@bkrabach
bkrabach merged commit f1fcb66 into main Aug 4, 2026
7 checks passed
@bkrabach
bkrabach deleted the feature/goalify-output-file-and-ordering branch August 4, 2026 00:09
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.

2 participants