Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
2ce15df
chore: merge main v0.1.0 into develop (#52)
github-actions[bot] Oct 18, 2026
20f2abb
docs(agents): reword AGENTS.md rules in STE-based wording
a1exk-dev Oct 19, 2026
208615c
fix(writing): close agent-instructions eval gaps and keep count rules…
a1exk-dev Oct 19, 2026
1d123ee
fix(writing): resolve agent-instructions rule conflicts found by the …
a1exk-dev Oct 19, 2026
87b31cf
docs(agents): merge feature/agents-md-wording into develop (#53)
a1exk-dev Oct 19, 2026
344d71d
fix(writing): merge feature/agent-instructions-eval-fixes into develo…
a1exk-dev Oct 19, 2026
0e1bdd1
chore: ignore the local Skill copy in the eval fixture project
a1exk-dev Oct 19, 2026
c5147ae
chore: merge feature/ignore-fixture-skill-copy into develop (#55)
a1exk-dev Oct 19, 2026
5f6cd8e
chore(prototypes): extend the git-commit Skill brief
a1exk-dev Oct 20, 2026
c28d661
chore(prototypes): correct the git-commit Skill brief
a1exk-dev Oct 20, 2026
fdad08e
feat(git-commit): add the git-commit Skill for the default policy
a1exk-dev Oct 24, 2026
6267594
feat(git-commit): read a Commit policy that the Skill did not write
a1exk-dev Oct 24, 2026
2427585
feat(git-commit): show a Commit review and wait for approval
a1exk-dev Oct 24, 2026
56d379a
feat(git-commit): set up a missing Commit policy
a1exk-dev Oct 24, 2026
66c6b0b
feat(git-commit): amend, revert, and merge under the Commit policy
a1exk-dev Oct 27, 2026
14deeaa
feat(git-commit): push after a commit under the Push Setting
a1exk-dev Oct 27, 2026
3ed9805
test(git-commit): add the load test of the description
a1exk-dev Oct 27, 2026
db20cdb
docs: move this repo to the git-commit Skill
a1exk-dev Oct 27, 2026
0251af1
docs(glossary): align two commit terms with the git-commit Skill
a1exk-dev Oct 27, 2026
fb5289c
chore(prototypes): delete the git-commit Skill brief
a1exk-dev Oct 27, 2026
bbff4fe
feat(git-commit): merge feature/git-commit into develop (#90)
a1exk-dev Oct 27, 2026
39092b5
chore: update commit policy
a1exk-dev Oct 27, 2026
a8ff082
chore: merge feature/commit-policy-automatic into develop (#93)
a1exk-dev Oct 27, 2026
90922b9
feat(agent-instructions): run the subagents of each round together
a-katkov-expondo-com Oct 28, 2026
9c5c42a
test(agent-instructions): tell graders that a launch result is no report
a-katkov-expondo-com Oct 28, 2026
b7e4c6f
feat: merge feature/111-t112 into the #111 branch
a-katkov-expondo-com Oct 28, 2026
1bd4be6
feat(agent-instructions): move text to reference files in the write job
a-katkov-expondo-com Oct 28, 2026
d92b539
fix(agent-instructions): keep steps and rule groups in write-job moves
a-katkov-expondo-com Oct 28, 2026
2fd480a
feat: merge the #111 branch into feature/111-t113
a-katkov-expondo-com Oct 28, 2026
2fe5dec
feat: merge feature/111-t113 into the #111 branch
a-katkov-expondo-com Oct 28, 2026
e48fdaf
test(agent-instructions): expect edit-job moves for the size limit
a-katkov-expondo-com Oct 28, 2026
21dc676
feat(agent-instructions): move edit-job text only where it changed
a-katkov-expondo-com Oct 28, 2026
9969b1f
feat: merge feature/111-t114 into the #111 branch
a-katkov-expondo-com Oct 28, 2026
97ee33b
fix(agent-instructions): resolve the spec #111 code-review findings
a-katkov-expondo-com Oct 28, 2026
577ea62
test(agent-instructions): drop the added round sentence from the README
a-katkov-expondo-com Oct 28, 2026
5994170
fix: merge feature/111-review-fixes into the #111 branch
a-katkov-expondo-com Oct 28, 2026
4469445
fix(agent-instructions): detect the 5-hour usage limit in eval runs
a-katkov-expondo-com Oct 28, 2026
b7c13dd
fix: merge feature/111-t115 into the #111 branch
a-katkov-expondo-com Oct 28, 2026
144e659
fix(agent-instructions): review all files in one round and count rules
a-katkov-expondo-com Oct 28, 2026
3595873
fix: merge feature/111-t115 into the #111 branch
a-katkov-expondo-com Oct 28, 2026
4319080
fix(agent-instructions): put the condition in each visible step
a-katkov-expondo-com Oct 28, 2026
e197b19
feat: merge feature/111-extraction into develop (#118)
a-katkov-expondo-com Oct 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .agents/skills/git-commit
1 change: 1 addition & 0 deletions .claude/skills/git-commit
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@ CLAUDE.local.md
skills-lock.json
!tests/**/project/.claude/
!tests/**/project/.agents/
tests/**/project/.agents/skills/agent-instructions/
node_modules/
.playwright-mcp/
23 changes: 11 additions & 12 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,29 @@
# System design

- Treat evidence-led KISS and YAGNI as equal primary system design heuristics.
- Consider SOLID for every system design decision, and prefer composition over inheritance.
- Design functionality and tests around standard usage and feasible failures reachable through production inputs, dependencies, or execution paths. Failures possible only through test-only construction are outside scope.
- Use KISS and YAGNI as the two equal primary rules of system design. Base each design decision on evidence.
- For each system design decision, examine SOLID. Use composition, not inheritance.
- Design the code and its tests for standard use, and for the failures that production inputs, dependencies, or code paths can cause. Do not design for failures that only test code can cause.

# Questions

- Ask one question at a time through the question harness tool, and wait for the answer before the next. Provide concrete answer options, with the recommended option first. This sequence replaces any skill's batched-round format.
- When you must ask the operator a question, use the question tool. Ask one question, then wait for the answer before you ask the next question. Give concrete answer options, with the recommended option first. This rule replaces the question format of each Skill that asks questions in batches.

# Knowledge

- Before you examine or change the repository, read `GLOSSARY.md` for the project terms and `MEMORY.md` for the applicable entries. Before you change a part of the project, read the ADRs in `docs/adr/` that are related to that part. Obey these ADRs, because each ADR records a decision that the code does not show.
- Prototypes: `prototypes/` holds throwaway work. Take facts and decisions from the rest of the repo, and open `prototypes/` only when the human's current prompt asks for it.
- Prototypes: The `prototypes/` folder contains work that the repository does not keep. Take facts and decisions from the other folders. Open `prototypes/` only when the current prompt of the operator tells you to open it.

# Workflow

- Branches: Before creating a branch, opening or merging a pull request, follow Git Flow strictly. Open pull requests into `main` only from `release/<semver>` or `hotfix/<name>`. Send every other change, including `feature/<name>` and `bugfix/<name>`, through a pull request into `develop`. Change `main` and `develop` only through pull requests with merge commits, because users install skills from `main`.
- Merging: Merge a pull request into `develop` yourself once every required check passes. Leave pull requests into `main` for the human to merge. GitHub deletes the remote branch of a merged pull request, but your local branch stays. After you merge a pull request from a `feature/<name>` or `bugfix/<name>` branch into `develop`, do these steps:
- Branches: Before you create a branch, or open or merge a pull request, obey Git Flow. Open pull requests into `main` only from `release/<semver>` or `hotfix/<name>`. Send all other changes, for example `feature/<name>` and `bugfix/<name>`, through a pull request into `develop`. Change `main` and `develop` only through pull requests with merge commits, because other projects install Skills from `main`.
- Merging: When all required checks pass, merge a pull request into `develop` yourself. For this merge commit, start the message with the line `<type>[(<scope>)]: merge <branch> into develop (#<n>)`. When you write this message, obey each Setting of the Commit policy, `docs/agents/commit-policy.md`, that controls the message. Leave pull requests into `main` for the operator to merge. GitHub deletes the remote branch of a merged pull request, but your local branch stays. After you merge a pull request from a `feature/<name>` or `bugfix/<name>` branch into `develop`, do these steps:
1. Run `git switch develop`.
2. Run `git pull`.
3. Run `git fetch --prune`.
4. CAUTION: Delete a local branch only with `git branch -d`, not `git branch -D`. `git branch -D` deletes commits that no other branch contains.
5. Delete the local branch of that pull request with `git branch -d <branch>`.
- Commits: Before creating a commit or proposing or using a commit message, read and follow [`docs/agents/commit-policy.md`](docs/agents/commit-policy.md).
- Checks: Before each commit, run `docker compose run --rm bun run check`. Done when it exits 0; fix every error it reports. To fix formatting, run `docker compose run --rm bun run fix`.
- Back-merges: After the user merges a pull request into `main`, `release.yml` opens the back-merge pull request from `main` into `develop`. If the `back-merge` job stops because Git cannot merge `main` into `develop`, do not change that pull request. If you change that pull request, you push commits to `main`. Run `git fetch`. Then do these steps:
- Checks: Before each commit, run `docker compose run --rm bun run check`. Correct all errors that it reports, until it exits 0. To correct the format, run `docker compose run --rm bun run fix`.
- Back-merges: After the operator merges a pull request into `main`, `release.yml` opens the back-merge pull request from `main` into `develop`. If the `back-merge` job stops because Git cannot merge `main` into `develop`, do not change that pull request. If you change that pull request, you push commits to `main`. Run `git fetch`. Then do these steps:
1. Make the branch `bugfix/back-merge-v<semver>` from `origin/develop`. The title of the back-merge pull request gives `<semver>`.
2. On that branch, run `git merge origin/main` and correct the files that Git cannot merge.
3. Open a pull request from that branch into `develop`.
Expand All @@ -34,11 +33,11 @@

## Issue tracker

GitHub Issues on a1exk-dev/agent-context, tracked in the private "agent-context" project. See `docs/agents/issue-tracker.md`.
The issues are GitHub Issues on a1exk-dev/agent-context. The private "agent-context" project tracks them. Before you create, read, or change an issue, read `docs/agents/issue-tracker.md`.

## Triage labels

Default labels: needs-triage, needs-info, ready-for-agent, ready-for-human, wontfix. See `docs/agents/triage-labels.md`.
The default labels are needs-triage, needs-info, ready-for-agent, ready-for-human, and wontfix. Before you add or change a triage label, read `docs/agents/triage-labels.md`.

## Domain docs

Expand Down
16 changes: 16 additions & 0 deletions GLOSSARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,19 @@ A Category is a folder, one level deep, that contains Skills under `skills/` or
**Agent instruction**:
An Agent instruction is a file that an agent reads as instructions. Examples are a Skill, a Rule, `AGENTS.md`, `CLAUDE.md`, `GLOSSARY.md`, `MEMORY.md`, and the files in `docs/agents/`. A file for persons, for example `README.md`, is not an Agent instruction.
_Avoid_: prompt file, instruction file

**Operator**:
The operator is the human who controls a project and the agents that work in it. Only the operator answers the questions of an agent and gives approval. An agent never acts as the operator.
_Avoid_: user, owner, maintainer

**Commit policy**:
A Commit policy is the file `docs/agents/commit-policy.md` of a project. It holds the title `# Commit policy` and the Settings that each commit by the git-commit Skill obeys, and no other text.
_Avoid_: commit rules, commit conventions, commit config

**Setting**:
A Setting is one line `- <name>: <value>` of a Commit policy. The git-commit Skill fixes each name and its possible values.
_Avoid_: option, rule

**Commit review**:
A Commit review is what an agent shows the Operator before one commit: the staged files, the full diff, and the exact message. But for a diff of more than 500 lines, the Commit review gives the command that shows the diff, not the full diff. The commit occurs only after the Operator approves that review.
_Avoid_: commit preview, approval request
1 change: 1 addition & 0 deletions cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
"gpgsign",
"mattpocock",
"mktemp",
"oneline",
"opencode",
"vitest",
"wayfinder",
Expand Down
20 changes: 10 additions & 10 deletions docs/agents/commit-policy.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Commit policy

- Follow [Conventional Commits 1.0.0](https://www.conventionalcommits.org/en/v1.0.0/). Scopes are optional.
- Include a `Refs: #<issue-number>` footer in commits that work on an issue.
- Apply the commit format and approval policy to every commit, including merge commits; this policy overrides skill defaults.
- After approval, use the reviewed message without rewriting it.
- Present verified changes and the proposed message for human review. Ask one question with `Commit`, `Request changes`, and `Reject` options when no decision is pending.
- A `Commit` decision authorizes only the reviewed diff and message for one commit. Apply requested changes, verify them, and present them again. Leave rejected work uncommitted.

## When GitHub merges the pull request from `main` into `develop` automatically

- Do not ask for approval of the merge commit that has the message `chore: merge main v<semver> into develop (#<n>)`, because no agent makes this commit.
- Scope: optional
- Scopes: any
- Types: build, chore, ci, docs, feat, fix, perf, refactor, revert, style, test
- Breaking change: both
- Issue footer: Refs
- Header length: 72
- Body: optional
- Description style: lower case, imperative, no full stop
- Commit approval: automatic
- Push: automatic
8 changes: 4 additions & 4 deletions docs/agents/domain.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,14 +51,14 @@ At the completion of every task, classify each useful discovery and important de

Write each qualifying item automatically as soon as it is resolved, without an approval gate. For an ADR, obey the section "When a task makes an architecture decision". Keep each meaning in one authoritative file and update an existing entry instead of duplicating it. At task completion, run the classification once more to catch anything missed. Tasks with no qualifying durable knowledge finish without a knowledge-file edit.

Commit every knowledge-file edit on the branch whose work produced it, before that branch is pushed, through the [commit policy](commit-policy.md)'s review. Preservation is complete when every qualifying item appears in exactly one authoritative location. In the final response, give the human a concise review list containing each changed knowledge file, what was added or updated, and why it qualified.
Commit every knowledge-file edit on the branch whose work produced it, before that branch is pushed. Preservation is complete when every qualifying item appears in exactly one authoritative location. In the final response, give the human a concise review list containing each changed knowledge file, what was added or updated, and why it qualified.

## When a task makes an architecture decision

1. When a task makes an architecture decision, use the `domain-modeling` skill to examine the decision.
2. If all 3 conditions in the section "Offer ADRs sparingly" of the `domain-modeling` skill are true, recommend an ADR to the user. If not, write the decision in `MEMORY.md`.
3. Before you write the ADR in `docs/adr/`, get approval from the user, because the user controls each ADR.
2. If all 3 conditions in the section "Offer ADRs sparingly" of the `domain-modeling` skill are true, recommend an ADR to the operator. If not, write the decision in `MEMORY.md`.
3. Before you write the ADR in `docs/adr/`, get approval from the operator, because the operator controls each ADR.

## Before you change an ADR

- Get approval from the user, because the user controls each ADR.
- Get approval from the operator, because the operator controls each ADR.
25 changes: 0 additions & 25 deletions prototypes/skills/git-commit.md

This file was deleted.

Loading
Loading