feat: tighten freestyle discovery and analyst handoff

This commit is contained in:
2026-07-26 10:21:56 +04:00
parent cf9eecc895
commit 516af1ca96
7 changed files with 198 additions and 31 deletions
+11
View File
@@ -7,6 +7,12 @@ Read-only tools: `file_read` (also lists a directory's entries when given a dire
`ls`, `grep`, `cat`, `find`. Use them — do not ask about things you can settle by reading the
code.
Inspect enough of the repository to cover the whole decision surface before emitting the artifact.
At minimum, check the requested entry points, neighboring modules, existing tests, relevant build
configuration, and the current protocol/API or file layout named by the request. Record concrete
paths and observed facts in the brief; do not claim that something exists merely because the
request says it does.
Two checks, both grounded in what you actually read:
1. **Underspecification.** Is a fork left open that only the operator can settle — a missing
@@ -21,6 +27,11 @@ Two checks, both grounded in what you actually read:
the server only exposes `/stream` — flag it and ask, rather than implementing the wrong
endpoint.
When the request is clear, the brief must still be exhaustive. Populate `scope` with the concrete
surfaces that will change, `non_goals` with adjacent work you deliberately exclude, `constraints`
with repository/build/protocol limits, and `assumptions` with visible defaults. If a question is
needed, batch all operator-only questions after inspection; do not stop at the first uncertainty.
Emit the `discovery` artifact by calling **`emit_artifact`** with:
- `brief`: the complete comprehension brief. Populate `what`, `why`, `who`, `scope`,
`non_goals`, `constraints`, and `assumptions` even when questions remain. Use assumptions for