Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion .agents/AGENTS.reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ The human keeps delivery state in `.agents/work.toml`. It contains at most five

The four prose fields (`user_problem`, `change`, each `acceptance` item, and `why_next`) may hold paragraphs, so write them with a TOML multi-line string (`"""`) when one line will not state the problem honestly. The structural values stay on one line each: `selected_action`, every step `id`, every `blocked_by` id, and every status. Tabs, carriage returns, other control characters, and Unicode line or paragraph separators are rejected everywhere, in prose as well; only the line-feed paragraph break is prose-only. The `next` brief indents every continuation line, so prose cannot forge a heading of its own.

To start the selected action, copy `.agents/user-prompts/kickoff.md`, fill in its optional context, and paste it to the agent.
To start the selected action, copy `.agents/user-prompts/kickoff.md`, fill in its optional context, and paste it to the agent. To ask instead for a standalone read-only review of a whole tree at one ref, or of one diff between two refs, copy `.agents/user-prompts/review.md`. That prompt is a reference asset a human invokes by hand; it neither starts nor advances the selected action, and its review is the agent's direct response, not a file.

`.agents/work.toml` is the only workflow task-state file. Do not create a plan tree, ledger, round log, findings directory, or review record. Product-development checks under `.agents/checks.toml`, `.agents/checks/`, and `.agents/hooks/` are optional tooling, not task state or proof of review.

Expand Down
20 changes: 20 additions & 0 deletions .agents/user-prompts/review.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Review prompt

Copy this, choose one target mode, fill in the criteria, and paste it to an agent. This asks for a standalone review of code that already exists; it is not delivery state and does not start or advance the selected action.

---

Give me a standalone, read-only code review. Choose exactly one target mode and say which one you used.

- CURRENT TREE at `<ref>`: review the complete tree at that single ref. There is no baseline, so this is a whole-tree review, never a diff review and never an empty one.
- DIFF from `<base>` to `<tip>`: review the changes in `<base>..<tip>`, plus only the surrounding code needed to judge them. Do not widen this into a whole-tree review.

Criteria: `<paste the principles, acceptance criteria and constraints to review against>`.

Before reviewing, resolve every named ref to its full commit ID, then state the target mode, those IDs, the criteria, and whether the working tree is clean or dirty. If a ref or a criterion is missing or ambiguous, stop and ask rather than guess.

Work read-only. Do not edit, create, format, stage, commit or delete any file in the reviewed repository; do not change its index, refs or configuration; never write a findings file, report, ledger, round log, review directory, plan tree or task state anywhere. Reproduce behaviour only in a human-authorised scratch directory outside that repository. Record `git status --porcelain` before and after reviewing; report any difference rather than a read-only review. Return the review directly in this response.

Give each finding a severity of `low`, `medium`, `high` or `critical`, explain its impact against the stated criteria, and give reproducible evidence: an exact command with its relevant output, or `<full-commit-id>:<file>:<line>`. Report no unsupported suspicion. An improvement outside the criteria is out of scope, not a finding.

If nothing violates the criteria, say `No findings.` and briefly list the target, the criteria and the checks you ran.
29 changes: 14 additions & 15 deletions .agents/work.toml
Original file line number Diff line number Diff line change
@@ -1,25 +1,24 @@
version = 1

[[step]]
id = "prevent-false-attribution"
id = "ship-standalone-review-prompt"
status = "complete"
blocked_by = []
user_problem = """
Commits can name an agent or an LLM as the author or as a co-author, which credits work to someone who did not do it and adds a false contributor to the repository.

A rewrite of the history fixed the record already. All 1512 commits reachable from the current main now carry the raw author nothingnesses <18732253+nothingnesses@users.noreply.github.com>, seven Co-Authored-By trailers are gone, and the repository-local Test <test@example.com> identity override is gone. Nothing stops the next commit from undoing that work."""
A human who wants a review of a whole tree or of one diff has to improvise the request. A whole-tree review can silently collapse into an empty diff review.
"""
change = """
Add a read-only attribution check over every commit reachable from HEAD, prove it with scratch repositories, run both from the shared just ci gate, fetch the complete history in GitHub CI, and state the rule in the shipped guidance."""
Ship one compact standalone review prompt as a built-in pack reference asset, with the discoverability and tests it needs.
"""
acceptance = [
"just ci checks the complete reachable history, locally and in GitHub CI.",
"The gate accepts only the raw author identity nothingnesses <18732253+nothingnesses@users.noreply.github.com>.",
"Any Co-Authored-By trailer fails, whatever its case and whatever horizontal whitespace surrounds the key and the colon.",
"A report names the offending commit and the rule it broke, and prints no other commit body content.",
"Scratch repositories outside the tracked tree prove the passing case, a foreign author, a placeholder author, and a co-author trailer, under temporary Git configuration.",
"The GitHub checkout fetches the complete history, so the remote run cannot inspect only the tip, and it keeps the default merge-result ref, so a pull request still builds and tests the merge rather than the branch tip alone.",
"On a pull request the remote run scans the commits of the branch rather than the synthetic author of GitHub's merge commit.",
"The shipped guidance requires the owner identity and forbids agent and LLM attribution in commits and pull requests.",
"The gate stays read-only over the tracked tree, and the existing formatting, Clippy, test, reset tripwire, action pin, and clean-tree checks still pass.",
"A fresh default scaffold writes `.agents/user-prompts/review.md` and no other new asset.",
"The prompt makes the current-tree and diff targets exclusive and unambiguous.",
"It requires criteria, resolved refs, a clean-or-dirty status statement, read-only work and a direct response.",
"It requires severity and reproducible evidence and allows a concise clean result.",
"It forbids edits and every persisted review-state family the reset removed.",
"Shipped guidance says when to use the kickoff prompt and when to use this one.",
"Tests pin the asset, its limits and that contract.",
]
why_next = """
The history is clean today only because a human rewrote it. A mechanical gate keeps it clean without asking every later author to remember the rule, and it is cheap to add while the evidence of what went wrong is fresh."""
The comparison already chose this surface. Shipping it closes the gap without a command, provider or new state.
"""
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ The human keeps delivery state in `.agents/work.toml`. It contains at most five

The four prose fields (`user_problem`, `change`, each `acceptance` item, and `why_next`) may hold paragraphs, so write them with a TOML multi-line string (`"""`) when one line will not state the problem honestly. The structural values stay on one line each: `selected_action`, every step `id`, every `blocked_by` id, and every status. Tabs, carriage returns, other control characters, and Unicode line or paragraph separators are rejected everywhere, in prose as well; only the line-feed paragraph break is prose-only. The `next` brief indents every continuation line, so prose cannot forge a heading of its own.

To start the selected action, copy `.agents/user-prompts/kickoff.md`, fill in its optional context, and paste it to the agent.
To start the selected action, copy `.agents/user-prompts/kickoff.md`, fill in its optional context, and paste it to the agent. To ask instead for a standalone read-only review of a whole tree at one ref, or of one diff between two refs, copy `.agents/user-prompts/review.md`. That prompt is a reference asset a human invokes by hand; it neither starts nor advances the selected action, and its review is the agent's direct response, not a file.

`.agents/work.toml` is the only workflow task-state file. Do not create a plan tree, ledger, round log, findings directory, or review record. Product-development checks under `.agents/checks.toml`, `.agents/checks/`, and `.agents/hooks/` are optional tooling, not task state or proof of review.

Expand Down
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,11 @@ AGENTS.md compact canonical guidance (working file)
verifier.md verify that fix once
user-prompts/
kickoff.md start the selected action
review.md ask for one standalone read-only review
```

The two user prompts answer different questions. Copy `kickoff.md` to start the selected action and run the bounded delivery around it. Copy `review.md` when you only want code that already exists reviewed: a whole tree at one ref, or one diff between two refs, judged against criteria you supply. It is a human-invoked reference asset, not workflow state, so it starts no delivery, changes no file in the reviewed repository and persists no review state anywhere, confines any reproduction to a scratch directory you authorise outside that repository, and returns its review as the agent's direct response.

The default creates no ledger, JSON Lines round log, `docs/plans/` process tree, review directory, plan-review loop, or convergence-round state. `.agents/work.toml` contains at most five ordered delivery steps. While work remains, `selected_action` names one active step and several steps may be active at once; after every step is complete, the field is omitted. `agent-flow validate`, `status`, and `next` use that state by default.

`AGENTS.md` is rendered from the selected principles. The root guidance and `.agents/work.toml` are working files, created only when absent unless `--force` is used. Tool-owned references under `.agents/` refresh on each run.
Expand Down
2 changes: 1 addition & 1 deletion pack/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ The human keeps delivery state in `.agents/work.toml`. It contains at most five

The four prose fields (`user_problem`, `change`, each `acceptance` item, and `why_next`) may hold paragraphs, so write them with a TOML multi-line string (`"""`) when one line will not state the problem honestly. The structural values stay on one line each: `selected_action`, every step `id`, every `blocked_by` id, and every status. Tabs, carriage returns, other control characters, and Unicode line or paragraph separators are rejected everywhere, in prose as well; only the line-feed paragraph break is prose-only. The `next` brief indents every continuation line, so prose cannot forge a heading of its own.

To start the selected action, copy `.agents/user-prompts/kickoff.md`, fill in its optional context, and paste it to the agent.
To start the selected action, copy `.agents/user-prompts/kickoff.md`, fill in its optional context, and paste it to the agent. To ask instead for a standalone read-only review of a whole tree at one ref, or of one diff between two refs, copy `.agents/user-prompts/review.md`. That prompt is a reference asset a human invokes by hand; it neither starts nor advances the selected action, and its review is the agent's direct response, not a file.

`.agents/work.toml` is the only workflow task-state file. Do not create a plan tree, ledger, round log, findings directory, or review record. Product-development checks under `.agents/checks.toml`, `.agents/checks/`, and `.agents/hooks/` are optional tooling, not task state or proof of review.

Expand Down
5 changes: 5 additions & 0 deletions pack/pack.toml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,11 @@ source = "user-prompts/kickoff.md"
dest = ".agents/user-prompts/kickoff.md"
ownership = "reference"

[[asset]]
source = "user-prompts/review.md"
dest = ".agents/user-prompts/review.md"
ownership = "reference"

# Optional product-development checks. No asset in this module is task state.
[[asset]]
source = "checks.toml"
Expand Down
20 changes: 20 additions & 0 deletions pack/user-prompts/review.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Review prompt

Copy this, choose one target mode, fill in the criteria, and paste it to an agent. This asks for a standalone review of code that already exists; it is not delivery state and does not start or advance the selected action.

---

Give me a standalone, read-only code review. Choose exactly one target mode and say which one you used.

- CURRENT TREE at `<ref>`: review the complete tree at that single ref. There is no baseline, so this is a whole-tree review, never a diff review and never an empty one.
- DIFF from `<base>` to `<tip>`: review the changes in `<base>..<tip>`, plus only the surrounding code needed to judge them. Do not widen this into a whole-tree review.

Criteria: `<paste the principles, acceptance criteria and constraints to review against>`.

Before reviewing, resolve every named ref to its full commit ID, then state the target mode, those IDs, the criteria, and whether the working tree is clean or dirty. If a ref or a criterion is missing or ambiguous, stop and ask rather than guess.

Work read-only. Do not edit, create, format, stage, commit or delete any file in the reviewed repository; do not change its index, refs or configuration; never write a findings file, report, ledger, round log, review directory, plan tree or task state anywhere. Reproduce behaviour only in a human-authorised scratch directory outside that repository. Record `git status --porcelain` before and after reviewing; report any difference rather than a read-only review. Return the review directly in this response.

Give each finding a severity of `low`, `medium`, `high` or `critical`, explain its impact against the stated criteria, and give reproducible evidence: an exact command with its relevant output, or `<full-commit-id>:<file>:<line>`. Report no unsupported suspicion. An improvement outside the criteria is out of scope, not a finding.

If nothing violates the criteria, say `No findings.` and briefly list the target, the criteria and the checks you ran.
1 change: 1 addition & 0 deletions src/manifest.rs
Original file line number Diff line number Diff line change
Expand Up @@ -863,6 +863,7 @@ mod tests {
".agents/prompts/verifier.md",
".agents/principles.toml",
".agents/user-prompts/kickoff.md",
".agents/user-prompts/review.md",
]
);
}
Expand Down
Loading