Skip to content

chore(release): merge release/0.2.0 into main - #119

Merged
a1exk-dev merged 42 commits into
mainfrom
release/0.2.0
Oct 28, 2026
Merged

a1exk-dev merged 42 commits into
mainfrom
release/0.2.0

Conversation

@a1exk-dev

Copy link
Copy Markdown
Owner

Summary

Brings 6 merged PRs from develop into main (#53, #54, #55, #90, #93, #118). Minor bump: new Skill and new features, no breaking changes.

 skills/
+├── engineering/git-commit/          # new Skill (#90)
 └── writing/agent-instructions/
+    ├── extraction to reference files (write and edit jobs) (#118)
+    ├── shared review and reader rounds (#118)
~    └── eval fixes and rule-conflict fixes (#54)
 docs/agents/commit-policy.md         # automatic commit and push (#93)
 AGENTS.md                            # STE-based wording (#53)

Evidence

  • Before: latest tag v0.1.0; main at fd16846.
    After: check the release run: tag v0.2.0, release v0.2.0, and the back-merge PR into develop.

Merge Danger

Door: one-way

Other projects install Skills from main, and the tag v0.2.0 is public once made.

Blast Radius: repo-wide

All Skills, docs, and tooling on develop reach main.

github-actions Bot and others added 30 commits October 18, 2026 20:17
chore: merge main v0.1.0 into develop
…eval matrix

- review.md: make the round copy in its own tool call, and put no other
  tool call in the message that saves a report.
- SKILL.md: add the entry-format vs "do not omit words" case to the
  conflict table.
- agent-skills-spec.md: a description that gives an instruction is
  procedural text (20-word limit).
- evals.json: give test 5 an action for the Guidance line, and make
  [5.1] name the 3 lines it checks.

Refs: #17
A copy in project/.agents/skills/ goes out of date, and the eval runner
copies it into without_skill runs.
Add the breaking-change "!" setting, the rule to read
commit-policy.md first, agent execution, and the pre-merge
deletion of this prototype.

Refs: #56
Add skills/engineering/git-commit/SKILL.md. Before the first git add,
it reads a well-formed Commit policy. It stages only the task files,
writes a Conventional Commits 1.0.0 message that obeys each Setting,
and reports the short SHA, header, and file stat of each commit. The
Commit policy wins over other skills, project instructions, and
platform defaults.

Add the output-test runner in tests/skills/engineering/git-commit/: a
sample project with a local bare origin per run, setup steps from
evals.json, a git-command audit with a unit test, and a grader prompt.
Output tests 1, 2, 3, 4, and 18 pass with the Skill, each with a
baseline run.

Add the GLOSSARY.md entries Operator, Commit policy, Setting, and
Commit review, and the .agents and .claude symlinks to the Skill.

Refs: #68
The Skill now examines each line of docs/agents/commit-policy.md
before the first git add. A line that is not the title, a blank line,
or a known Setting with a valid value is an incorrect line, and so is
a repeated Setting name. On an incorrect line the Skill stops with no
git add, no commit, no file change, and no question. Its report gives
the number and text of each incorrect line and tells the Operator to
rewrite or delete the file.

When no line is incorrect and a Setting is missing, the Skill asks one
question with the default value recommended. With no question tool it
uses the default value. It writes the line back and commits the Commit
policy alone as "chore: update commit policy" before the task commit.
The Setting table gets a Default value column.

Add output test 9 (missing Push line) and test 19 (free-prose Commit
policy), and manual check M6 in the test README. With the Skill, tests
1, 2, 3, 4, 9, 18, and 19 pass every statement. Baselines without the
Skill: 9 passes 6 of 10, 19 passes 4 of 11.

Refs: #69
With Commit approval confirm, the Skill records the staged tree ID,
shows the Commit review (stat, diff, message, other changed files),
and asks one question: Commit, Request changes, or Reject. Only the
Operator approves, once for each Commit review. An approval given
before the review does not count. Commit checks the tree ID again
before the commit and after it. When a Git hook changed the commit,
the Skill undoes it with git reset --soft and shows a new review.
Reject unstages the task files and keeps the changes. A subagent puts
the review in its report, and the agent that started it asks the
Operator. With no question tool, the Skill shows the question as text
and stops. A failing hook stops the Skill with the hook error, and
the Skill never uses or recommends --no-verify.

Add output test 5 (confirm, no human) and test 17 (failing pre-commit
hook), and manual checks M1, M2, M3, M9, and M10 in the test README.
With the Skill, tests 5 and 17 pass every statement, and the
regression runs of 1, 2, 3, 4, 9, 18, and 19 still pass every
statement. Baselines without the Skill: 5 passes 4 of 12, 17 passes
8 of 9.

Refs: #70
When docs/agents/commit-policy.md is not there, the Skill shows the
default file and asks one question: Use defaults or Choose each
setting. Choose each setting asks the 10 Settings one at a time, in
table order, each with the default recommended. The Skill writes the
file, makes docs/agents/ when it is missing, commits it alone as
"chore: add commit policy" under its own Commit approval, and then
does the task commit. When the prompt says "use the default commit
policy" or gives all 10 values, the Skill asks nothing. With no
question tool and no such answers, it writes and commits nothing and
lists the Settings that have no answer. With confirm and no human, it
stages only the Commit policy, shows its Commit review, and stops with
the task files unstaged.

When a Setting forbids a part of "chore: add commit policy" or
"chore: update commit policy", the Skill changes or adds only that
part, for example "chore: Add commit policy." for sentence case with
a full stop. The incorrect-line report now says that a deleted Commit
policy starts the setup at the next commit.

Add setup.remove to the eval runner, output tests 6, 7, and 8, and
manual checks M4 and M5 in the test README. With the Skill, tests 6,
7, and 8 pass every statement, and the regression runs of 1, 2, 3,
4, 5, 9, 17, 18, and 19 still pass every statement. Baselines without
the Skill: 6 passes 4 of 9, 7 passes 2 of 11, 8 passes 6 of 10.

Refs: #71
Move the 2 Commit policy setup sections to
references/commit-policy-setup.md, so that SKILL.md has space for later
tickets (14,996 bytes of 20,000). Put the amend, revert, local merge, and
gh pr merge rules in references/amend-revert-merge.md. The description
now loads the Skill before git merge and gh pr merge.

Add output tests 10 to 14, a stub command on PATH for gh, and manual
check M8. The start commit now comes before the setup steps, so
git-before.md shows the commits that a step makes.

Refs: #72
Put the push steps in references/push.md: off never pushes, confirm
asks Push / Don't push with the branch and the commits that the push
sends, and automatic pushes and reports. No force push; a rejected
push is reported and stops the Skill. After a subagent's Commit
review, the parent agent now reads the Push Setting itself. The Push
Setting covers only the commits that the Skill makes in the task.
SKILL.md is 15,251 bytes of 20,000.

Add output tests 15 and 16 and manual check M7.

Refs: #73
Add load-requests.json with the 20 load requests of the spec. The
request "merge PR #42 with gh pr merge" is a must-load request, because
the description now names gh pr merge (#72). Add run-load-test.ts,
which runs each request 3 times with claude -p in a test repository
that fits each request, and loadDecision in eval-lib.ts with its unit
test. Move the stream line reader to the shared eval-lib.ts of the
agent-instructions tests.

Round 1 with claude-opus-5-5: 19 of 20 requests correct.

Refs: #74
Replace the prose commit policy with the default Commit policy, so that
the installed git-commit Skill reads it and does not stop. Remove the
Commits pointer from AGENTS.md, add the merge commit header rule to the
Merging line, and say "operator" where these files said "user".

Refs: #75
A Commit policy also holds its title, and a Commit review of a diff of
more than 500 lines gives the command that shows the diff, as the Skill
does.

Refs: #75
The git-commit Skill is built, so the brief has no further use.

Refs: #75
feat(git-commit): add the git-commit Skill and move this repo to it
chore: turn on automatic commit and push in the Commit policy
Start the reviewers of a review round and the readers of a reader-test
round at the same time, at most 3, and correct the file only after the
last report of the round. A failed subagent gets one new start; after a
second failure, "When no subagent is available" applies to that check
and all later checks. Statements [1] and [3] and the grader now check
the shared rounds.

Refs: #112
On Claude Code, a background Agent start returns an "Async agent launched" result at once. The report is the last subagent text block.

Refs: #112
In the write job, the author now moves templates, prompts, examples,
long policy or background text, and condition sections with 3 or more
rules from a new SKILL.md or new entry-file text into reference files,
before the self-check. Over the size limit it moves more condition
sections, largest first, or warns with the measured size and the limit.
"When you recommend text to move" and the Extraction candidates part
now apply only to the edit job.

Tests 1 and 2 get the spec's added request text and statements [1.5],
[2.4], and [2.5].

Refs: #113
Test 2 split the user's Before-a-release rules into two files, and test
1 kept a failure-rules section in SKILL.md because it can occur at each
step. Keep the rules that the user gives under one condition in one
file, keep numbered steps in place, and move a conditional rule section
also when its condition can occur at each step.

Refs: #113
Test 9 now expects the run to move whole sections, largest first and
without changes, until AGENTS.md has 200 lines or less, and to list each
move with the size reason. Statement [10] permits these moved sections.
Test 3 gets a Before-a-release section in its fixture and statement
[3.2], which expects it as an extraction candidate that stays in place.
The grader measures the section sizes for [9.2].

Refs: #114
In the edit job, the author now applies the write-job move rules only to
the text that the edit adds or changes. If the file is still over its
size limit, it moves whole sections with a condition from unchanged
parts, largest first and without changes, and the Summary gives each
move with the measured size and the limit. A new conflict-table row lets
the size limit win over "change only the changed part".

An extraction candidate is now a section of an unchanged part that the
move rules would move. The loading reviewer gives a finding for a missed
or wrong move in editable text, and its candidate list holds only
sections that the author cannot edit. The write-job prompt omits that
list.

Refs: #114
Make the fallback, the move rules, and the report rules agree:

- The no-subagent warning and the fallback steps cover a partial
  fallback that starts part-way through a round.
- A failed subagent gets a new start only after all other reports of
  the round. Its group is complete without its report.
- Write-job item 2 keeps steps, terms, pointers, and sections with 1
  or 2 rules; condition sections with 3 or more rules move. Only the
  file-size rules and an approved move can move kept text.
- A heading or a sentence at the start of a section gives its
  condition, so the Deploy section of fixture 09 qualifies.
- Define the changed part and the unchanged part, use the spec text
  for the conflict-table row, and quote it in step 5.
- Keep each rule in one place: moves and their reasons in the
  Summary, the size warning, and the candidate unit and exclusions.

Refs: #111
The Claude Code message now reads "hit your 5-hour limit", so the
runners wrote no LIMIT_HIT file for runs that stopped at the limit.

Refs: #115
The iteration-2 eval matrix of #115 failed tests 1, 2, 6 and 9. Authors
ran a separate series of review rounds for each file, kept a section
with 3 user rules because they wrote the rules in 2 bullets, and added
rules at the old place of a section that the size limit moved.

Refs: #115
@a1exk-dev
a1exk-dev merged commit 574bf1f into main Oct 28, 2026
6 checks passed
@a1exk-dev
a1exk-dev deleted the release/0.2.0 branch October 28, 2026 20:12
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