agent-council 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/DESIGN.md +378 -0
- data/INSTALL.md +98 -0
- data/LICENSE.txt +21 -0
- data/README.md +852 -0
- data/RELEASE_NOTES.md +25 -0
- data/code-review-agents.md +28 -0
- data/examples/configs/consolidated.yml +22 -0
- data/examples/configs/single.yml +10 -0
- data/examples/prompts/dnsruby-pull-221-prompt.md +4 -0
- data/examples/prompts/project-name-prompt.md +3 -0
- data/examples/prompts/recommend-model-ensemble-prompt.md +62 -0
- data/examples/prompts/review-docs-prompt.md +101 -0
- data/examples/prompts/review-latest-commit-prompt.md +46 -0
- data/examples/prompts/review-pull-request-prompt.md +91 -0
- data/examples/prompts/smoke-test-prompt.md +1 -0
- data/examples/prompts/state-of-the-code-base-prompt.md +172 -0
- data/examples/prompts/test-coverage-analysis-prompt.md +346 -0
- data/exe/agent-council +12 -0
- data/exe/pi-models +39 -0
- data/lib/agent_council/harnesses/pi_harness.rb +169 -0
- data/lib/agent_council/pi_models.rb +185 -0
- data/lib/agent_council/platform.rb +27 -0
- data/lib/agent_council/templates/analyst_format.md +12 -0
- data/lib/agent_council/templates/consolidate_prompt.md +72 -0
- data/lib/agent_council/version.rb +5 -0
- data/lib/agent_council/worker_pool.rb +217 -0
- data/lib/agent_council.rb +1220 -0
- metadata +84 -0
data/RELEASE_NOTES.md
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Release Notes
|
|
2
|
+
|
|
3
|
+
## 0.1.0 (2026-11-09)
|
|
4
|
+
|
|
5
|
+
Initial release: run one prompt through multiple models via the pi harness,
|
|
6
|
+
saving each model's final response as a Markdown report, with optional
|
|
7
|
+
consolidation by another model. `--consolidate RUN_DIR` runs just the
|
|
8
|
+
consolidation of a finished run. Runs go under `./agent-council-reports`,
|
|
9
|
+
or under the directory given with `-o` / `--output-dir`; `--consolidate`
|
|
10
|
+
writes into the run directory it is given. `AGENT_COUNCIL_OPTS`
|
|
11
|
+
holds arguments inserted before the command-line ones. Includes
|
|
12
|
+
sample prompts and configs under `examples/`, and a `pi-models` helper that
|
|
13
|
+
lists the provider/model pairs available to pi. Each run directory's
|
|
14
|
+
`run.json` records every agent run's outcome, duration, token usage, and,
|
|
15
|
+
where pi can price it, cost; reports show their duration and usage, and the
|
|
16
|
+
console shows usage per agent and in total. The consolidated report is
|
|
17
|
+
split into a `_findings.md` file, which can be pasted into an AI chat as
|
|
18
|
+
is, and a `_meta.md` file with the run's metadata.
|
|
19
|
+
|
|
20
|
+
agent-council does not sandbox the agents: they get pi's `bash` tool,
|
|
21
|
+
running as you. See [Safety and privacy](README.md#safety-and-privacy) in the README before running it.
|
|
22
|
+
|
|
23
|
+
Runs on Ruby 3.3 or later and on JRuby 10 or later (where SIGQUIT is left
|
|
24
|
+
to the JVM, so it doesn't stop a run). Native Windows is not supported; on
|
|
25
|
+
Windows, run agent-council inside WSL.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Four agents and a consolidator for code review
|
|
2
|
+
|
|
3
|
+
| Role | Provider | Model | Why it fits |
|
|
4
|
+
|---|---|---|---|
|
|
5
|
+
| Main reviewer | `cursor` | `claude-opus-5-5-medium` | Primary review pass. |
|
|
6
|
+
| Fast first pass | `openai` | `gpt-6.1-sol` | Scans for bugs and missed edge cases. |
|
|
7
|
+
| Deep reviewer | `deepseek` | `deepseek-flash` | Independent review for complex changes. |
|
|
8
|
+
| Critical reviewer | `cursor` | `gemini-3.8-flash-high` | Careful final critique. |
|
|
9
|
+
| Consolidator | `cursor` | `claude-sonnet-5-5-high` | Synthesizes the findings. |
|
|
10
|
+
|
|
11
|
+
This uses three provider routes across four distinct agent model families. Opus 5.5 is the heavier review pass, so reserve it for consequential changes; the consolidator compares findings and highlights agreement, conflicts, and the most actionable issues.
|
|
12
|
+
|
|
13
|
+
To use it, copy the YAML block below into your config (`agent-council.yml` or `~/.agent-council.yml`), replacing any provider or model you don't have access to (see `pi --list-models`).
|
|
14
|
+
|
|
15
|
+
```yaml
|
|
16
|
+
agents:
|
|
17
|
+
- provider: cursor
|
|
18
|
+
model: claude-opus-5-5-medium
|
|
19
|
+
- provider: openai
|
|
20
|
+
model: gpt-6.1-sol
|
|
21
|
+
- provider: deepseek
|
|
22
|
+
model: deepseek-flash
|
|
23
|
+
- provider: cursor
|
|
24
|
+
model: gemini-3.8-flash-high
|
|
25
|
+
consolidator:
|
|
26
|
+
provider: cursor
|
|
27
|
+
model: claude-sonnet-5-5-high
|
|
28
|
+
```
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Sample ensemble: four analysts and a consolidator. Replace any provider or
|
|
2
|
+
# model you don't have credentials for (see `pi --list-models`). The
|
|
3
|
+
# commented-out entries are alternatives: uncommenting the extra agent adds a
|
|
4
|
+
# fifth analyst; to swap in the other consolidator, uncomment its provider
|
|
5
|
+
# and model lines and comment out the active pair.
|
|
6
|
+
agents:
|
|
7
|
+
- provider: opencode-go
|
|
8
|
+
model: glm-5.3
|
|
9
|
+
- provider: opencode-go
|
|
10
|
+
model: kimi-k3
|
|
11
|
+
- provider: openai
|
|
12
|
+
model: gpt-6.1-sol
|
|
13
|
+
# - provider: opencode-go
|
|
14
|
+
# model: minimax-m3
|
|
15
|
+
- provider: cursor
|
|
16
|
+
model: claude-sonnet-5-5-high
|
|
17
|
+
|
|
18
|
+
consolidator:
|
|
19
|
+
# provider: deepseek
|
|
20
|
+
# model: deepseek-v4-pro
|
|
21
|
+
provider: opencode-go
|
|
22
|
+
model: glm-5.3
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Minimal smoke-test config: one inexpensive model, for checking that your
|
|
2
|
+
# setup works (auth, invocation, report writing) without a full ensemble run
|
|
3
|
+
# (AC_HOME is the gem or source checkout directory; see the README):
|
|
4
|
+
#
|
|
5
|
+
# agent-council \
|
|
6
|
+
# "$AC_HOME/examples/prompts/smoke-test-prompt.md" \
|
|
7
|
+
# "$AC_HOME/examples/configs/single.yml"
|
|
8
|
+
agents:
|
|
9
|
+
- provider: opencode-go # OPENCODE_API_KEY
|
|
10
|
+
model: kimi-k2.7-code
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Recommend a Model Ensemble
|
|
2
|
+
|
|
3
|
+
Discover the available provider/model entries with `pi-models --json`, then
|
|
4
|
+
recommend a small ensemble for the user's task and constraints.
|
|
5
|
+
|
|
6
|
+
## Inputs
|
|
7
|
+
|
|
8
|
+
- **Task:** [Describe the task, such as code review]
|
|
9
|
+
- **Number of agents:** [How many recommendations to make]
|
|
10
|
+
- **Priorities:** [For example: insightful findings, speed, cost, provider diversity]
|
|
11
|
+
- **Unavailable providers or models:** [List any that do not work]
|
|
12
|
+
- **Current config:** [Optional existing `agents:` / `consolidator:` YAML]
|
|
13
|
+
- **Other constraints:** [Optional]
|
|
14
|
+
|
|
15
|
+
## Instructions
|
|
16
|
+
|
|
17
|
+
1. Run `pi-models --json` to discover the provider/model entries available
|
|
18
|
+
to pi: those of the providers the user has set up credentials for. Use
|
|
19
|
+
this as the source for model names and listed attributes, but do not
|
|
20
|
+
assume every entry is covered by the user's plan.
|
|
21
|
+
Exclude any providers or models the user marked unavailable. If the command
|
|
22
|
+
is not installed or fails, say so, and that the model list must then be
|
|
23
|
+
included in the prompt; do not invent available models.
|
|
24
|
+
2. Recommend exactly the requested number of agents and one consolidator,
|
|
25
|
+
choosing only from the discovered list. If a current config is provided,
|
|
26
|
+
use it as the baseline and explain any meaningful changes.
|
|
27
|
+
3. Optimize the full ensemble for the stated priorities. When provider
|
|
28
|
+
diversity matters, spread
|
|
29
|
+
recommendations across distinct provider routes where practical. Prefer
|
|
30
|
+
different underlying model families too, since multiple routes to the same
|
|
31
|
+
model may provide less useful independent feedback.
|
|
32
|
+
4. Balance capability with speed. A useful ensemble can combine a strong
|
|
33
|
+
primary reviewer, a fast broad pass, and one or more independent deep or
|
|
34
|
+
critical reviews. Avoid making every selection a slow, heavyweight model.
|
|
35
|
+
5. Assign each recommendation a clear role and briefly explain why it fits.
|
|
36
|
+
Note meaningful tradeoffs, such as a slower model reserved for consequential
|
|
37
|
+
changes.
|
|
38
|
+
6. Do not infer subscription quotas, actual latency, or cost from provider
|
|
39
|
+
names alone. State when a recommendation depends on an assumption about the
|
|
40
|
+
user's subscriptions or plan limits.
|
|
41
|
+
7. If browsing is available and current capability claims affect the choice,
|
|
42
|
+
verify them with reliable, preferably primary sources. Cite factual claims
|
|
43
|
+
near where they appear. Separate source-backed claims from judgment based on
|
|
44
|
+
the user's priorities. If browsing is unavailable, say that the ranking is
|
|
45
|
+
based on the discovered catalog and general model-family knowledge.
|
|
46
|
+
8. Keep the result concise and actionable. Use a table with provider, model,
|
|
47
|
+
and role/reason for each agent and the consolidator, followed by a short
|
|
48
|
+
explanation of the overall mix.
|
|
49
|
+
9. End with a fenced `yaml` code block containing a ready-to-copy config with
|
|
50
|
+
this shape:
|
|
51
|
+
|
|
52
|
+
```yaml
|
|
53
|
+
agents:
|
|
54
|
+
- provider: ...
|
|
55
|
+
model: ...
|
|
56
|
+
consolidator:
|
|
57
|
+
provider: ...
|
|
58
|
+
model: ...
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Ensure every provider/model pair in the YAML appears in the discovered
|
|
62
|
+
catalog and preserve the requested number of agent entries.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# Review Documentation
|
|
2
|
+
|
|
3
|
+
Review the documentation of the repository in the current working directory.
|
|
4
|
+
Report only issues needing addressing. Do not make changes.
|
|
5
|
+
|
|
6
|
+
If the current working directory is not the repository root, don't review
|
|
7
|
+
it: report only that, naming the current directory.
|
|
8
|
+
|
|
9
|
+
Documentation includes the README, any other Markdown files, help and usage
|
|
10
|
+
output, code comments that describe behavior, and sample files such as
|
|
11
|
+
example configs and prompts.
|
|
12
|
+
|
|
13
|
+
Evaluate whether the documentation is:
|
|
14
|
+
|
|
15
|
+
- **Accurate:** it matches what the code actually does. Check commands,
|
|
16
|
+
flags, option names, method names, file names, paths, defaults, config
|
|
17
|
+
keys, output formats, and version or prerequisite claims against the
|
|
18
|
+
code. Examples run as written and produce the output shown.
|
|
19
|
+
- **Complete:** every user-facing feature, option, and behavior is
|
|
20
|
+
documented, and nothing documented has been removed or renamed. Every
|
|
21
|
+
setup step a command depends on is described or linked.
|
|
22
|
+
- **Consistent:** the documents agree with each other and with the help
|
|
23
|
+
output, and use the same terms for the same things.
|
|
24
|
+
- **Usable by a newcomer:** someone starting from scratch can install,
|
|
25
|
+
configure, and complete a first run by following it, without needing
|
|
26
|
+
knowledge it doesn't provide. Steps are in a sensible order.
|
|
27
|
+
- **Clear and concise:** free of ambiguity, unexplained jargon, stale
|
|
28
|
+
history, and text that is hard to find or easy to misread.
|
|
29
|
+
- **Free of duplication:** each topic has one canonical location. Where the
|
|
30
|
+
same material is explained in several places, say which copy to keep
|
|
31
|
+
and recommend replacing the others with a short link. Never recommend
|
|
32
|
+
duplicating content that is maintained elsewhere.
|
|
33
|
+
- **Correctly linked:** relative links point to files that exist, and
|
|
34
|
+
anchor links (`#section`) match a heading or explicit anchor in the
|
|
35
|
+
target, both on the repository host and on the documentation site if
|
|
36
|
+
the project builds one.
|
|
37
|
+
|
|
38
|
+
## Scope
|
|
39
|
+
|
|
40
|
+
- Report documentation problems only. Do not review the code except to
|
|
41
|
+
verify what the documentation says about it.
|
|
42
|
+
- Don't review or report on files that git ignores (check with
|
|
43
|
+
`git check-ignore`), such as generated output, local scratch files, and
|
|
44
|
+
built documentation sites, or on `agent-council-reports/`
|
|
45
|
+
(agent-council's output, which may not be ignored). You may read
|
|
46
|
+
ignored files for context, but they are local to this checkout, so
|
|
47
|
+
judge the documentation against tracked files.
|
|
48
|
+
- Treat the code as the source of truth when it disagrees with the
|
|
49
|
+
documentation, unless the code's behavior looks like the bug; say so in
|
|
50
|
+
that case.
|
|
51
|
+
- Skip purely stylistic preferences unless they affect accuracy, clarity,
|
|
52
|
+
completeness, or maintainability.
|
|
53
|
+
- Files that consist only of a directive including another file (for
|
|
54
|
+
example, an MkDocs `include-markdown` stub that publishes a root file on
|
|
55
|
+
the documentation site) are intentional; do not report them as
|
|
56
|
+
incomplete.
|
|
57
|
+
|
|
58
|
+
## Upcoming Release
|
|
59
|
+
|
|
60
|
+
Review the documentation as describing the upcoming release (the version in
|
|
61
|
+
the project's version file, such as `version.rb`, `package.json`, or
|
|
62
|
+
`pyproject.toml`), as if that release were already published. Do not report:
|
|
63
|
+
|
|
64
|
+
- that this version is not yet published, is a prerelease, or is marked
|
|
65
|
+
unreleased;
|
|
66
|
+
- that install commands would fetch an older published release, or that
|
|
67
|
+
the older release behaves differently from what the docs describe;
|
|
68
|
+
- that install commands should add a prerelease flag or pin a version.
|
|
69
|
+
|
|
70
|
+
Do not query package registries to check.
|
|
71
|
+
|
|
72
|
+
## Verification
|
|
73
|
+
|
|
74
|
+
Investigate thoroughly before reaching conclusions.
|
|
75
|
+
|
|
76
|
+
You are permitted and encouraged to inspect files, run the program's help
|
|
77
|
+
output, follow the documented steps and examples, and execute commands to
|
|
78
|
+
confirm or refute what the documentation claims. Don't rely on a claim being
|
|
79
|
+
plausible: check it. Don't install software, though: check installation
|
|
80
|
+
steps by reading them against the code and packaging instead. Don't run
|
|
81
|
+
test suites, builds, servers, or database tasks either. Don't run
|
|
82
|
+
commands that call paid or remote services (such as AI models); check
|
|
83
|
+
those steps by reading the code instead.
|
|
84
|
+
|
|
85
|
+
**DO NOT EDIT ANY CODE OR TRACKED FILES, AND DO NOT COMMIT.**
|
|
86
|
+
|
|
87
|
+
Commands otherwise permitted here may generate temporary files; direct
|
|
88
|
+
their output to your scratch directory where the tool allows it.
|
|
89
|
+
Avoid unnecessary modifications to the working tree.
|
|
90
|
+
|
|
91
|
+
## Report
|
|
92
|
+
|
|
93
|
+
For each issue, identify the document and location, quote the problematic
|
|
94
|
+
text, explain the problem and its impact on a reader, and propose replacement
|
|
95
|
+
wording or a fix. Say how you verified it (for example, a command you ran or
|
|
96
|
+
the code you compared against), or that it is unverified.
|
|
97
|
+
|
|
98
|
+
Order issues by importance: first those that would mislead or block a
|
|
99
|
+
reader, then omissions, then minor clarity problems.
|
|
100
|
+
|
|
101
|
+
If you find no issues, say so, and mention any limits of the review.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Review Latest Commit
|
|
2
|
+
|
|
3
|
+
Review the latest commit and any uncommitted changes.
|
|
4
|
+
Report only issues needing addressing.
|
|
5
|
+
|
|
6
|
+
Evaluate whether the changes are:
|
|
7
|
+
|
|
8
|
+
- Correct and complete.
|
|
9
|
+
- As simple as practical.
|
|
10
|
+
- Consistent with the commit's intent.
|
|
11
|
+
- Accompanied by appropriate tests and documentation updates.
|
|
12
|
+
|
|
13
|
+
The commit message may describe an implementation strategy rather than the
|
|
14
|
+
underlying problem. Infer the intended outcome and assess whether a better
|
|
15
|
+
solution would be appropriate.
|
|
16
|
+
|
|
17
|
+
## Scope
|
|
18
|
+
|
|
19
|
+
- Report only issues introduced by the latest commit or uncommitted changes.
|
|
20
|
+
- Report issues in uncommitted changes separately from those in the commit.
|
|
21
|
+
- Don't review or report on files that git ignores (check with
|
|
22
|
+
`git check-ignore`), or on `agent-council-reports/` (agent-council's
|
|
23
|
+
output, which may not be ignored). You may read ignored files for
|
|
24
|
+
context, but they are local to this checkout, so judge the changes
|
|
25
|
+
against tracked files.
|
|
26
|
+
- Do not report preexisting issues unless the changes introduce or worsen them.
|
|
27
|
+
- You may suggest improvements to the commit message, particularly if the
|
|
28
|
+
commit has not been pushed.
|
|
29
|
+
|
|
30
|
+
## Verification
|
|
31
|
+
|
|
32
|
+
Investigate thoroughly before reaching conclusions.
|
|
33
|
+
|
|
34
|
+
You are permitted and encouraged to inspect files, run Git commands, execute
|
|
35
|
+
relevant tests and linters, and reproduce suspected defects.
|
|
36
|
+
|
|
37
|
+
**DO NOT EDIT ANY CODE OR TRACKED FILES.**
|
|
38
|
+
|
|
39
|
+
Tests and linters that generate temporary files or coverage data are
|
|
40
|
+
permitted (builds are not); direct their output to your scratch
|
|
41
|
+
directory where the tool allows it. Avoid unnecessary modifications to the
|
|
42
|
+
working tree.
|
|
43
|
+
|
|
44
|
+
For each issue, identify the affected file and location, explain the problem
|
|
45
|
+
and its impact, and propose a fix. Say how you verified it (for example, a
|
|
46
|
+
reproduction or a test run), or that it is unverified.
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Review Pull Request
|
|
2
|
+
|
|
3
|
+
Review the GitHub pull request for the branch checked out in the current
|
|
4
|
+
working directory. Report only issues needing addressing.
|
|
5
|
+
|
|
6
|
+
The user has checked out the PR's head branch (for example with
|
|
7
|
+
`gh pr checkout <number>`) before starting this run. Use the local checkout
|
|
8
|
+
for reading and searching code; use the `gh` CLI only for what exists only
|
|
9
|
+
on GitHub.
|
|
10
|
+
|
|
11
|
+
## Gathering the PR
|
|
12
|
+
|
|
13
|
+
- Run `gh pr view --json number,title,body,author,baseRefName,headRefName,headRefOid,files,reviews,reviewDecision,statusCheckRollup`
|
|
14
|
+
for the PR's metadata and review summaries, and `gh pr view --comments` for
|
|
15
|
+
its discussion. Read inline review comments with
|
|
16
|
+
`gh api --paginate repos/{owner}/{repo}/pulls/<number>/comments`; without
|
|
17
|
+
`--paginate` only the first 30 are returned. To tell resolved threads from
|
|
18
|
+
open ones, query `reviewThreads { isResolved comments { ... } }` with
|
|
19
|
+
`gh api graphql`; the REST endpoint does not report resolution.
|
|
20
|
+
- Take the PR's changes from `gh pr diff`; it is authoritative even if the
|
|
21
|
+
local base branch is stale.
|
|
22
|
+
- For failing checks, use `gh pr checks` and `gh run view <run-id> --log-failed`.
|
|
23
|
+
- Compare `git rev-parse HEAD` with `headRefOid`. If they differ, or there
|
|
24
|
+
are uncommitted changes, say so at the top of the report: local files may
|
|
25
|
+
not match the PR.
|
|
26
|
+
- If `gh` is missing, unauthenticated, or finds no PR for this branch, don't
|
|
27
|
+
review: report only that, with the command and its error. Reach GitHub
|
|
28
|
+
only through `gh`: no `curl`, `wget`, or other HTTP client against the API
|
|
29
|
+
or web pages, which unauthenticated allows only 60 requests an hour,
|
|
30
|
+
shared by all concurrent agents.
|
|
31
|
+
- Do not run `gh pr checkout`, `git fetch`, `git pull`, or anything else that
|
|
32
|
+
changes git state, and do not post comments, reviews, or approvals.
|
|
33
|
+
|
|
34
|
+
## Evaluation
|
|
35
|
+
|
|
36
|
+
Evaluate whether the changes are:
|
|
37
|
+
|
|
38
|
+
- Correct and complete, including edge cases and error paths.
|
|
39
|
+
- As simple as practical.
|
|
40
|
+
- Consistent with the PR's stated intent, with no unrelated changes.
|
|
41
|
+
- Consistent with the code base's existing architecture, naming, and idioms.
|
|
42
|
+
- Accompanied by appropriate tests and documentation updates.
|
|
43
|
+
- Compatible: changes to public interfaces (CLI options, APIs, output
|
|
44
|
+
formats, configuration) are intended, and incompatible ones are recorded
|
|
45
|
+
where the project records them (changelog, release notes, version).
|
|
46
|
+
|
|
47
|
+
The PR description may describe an implementation strategy rather than the
|
|
48
|
+
underlying problem. Infer the intended outcome and assess whether a better
|
|
49
|
+
solution would be appropriate.
|
|
50
|
+
|
|
51
|
+
Also report:
|
|
52
|
+
|
|
53
|
+
- Review comments that remain unaddressed by the current head.
|
|
54
|
+
- Failing CI checks, with your assessment of whether this PR causes them.
|
|
55
|
+
|
|
56
|
+
## Scope
|
|
57
|
+
|
|
58
|
+
- Report only issues introduced by the PR. Do not report preexisting issues
|
|
59
|
+
unless the PR introduces or worsens them.
|
|
60
|
+
- Don't review or report on files that git ignores, or on
|
|
61
|
+
`agent-council-reports/` (agent-council's output, which may not be
|
|
62
|
+
ignored).
|
|
63
|
+
- You may suggest improvements to the PR title and description.
|
|
64
|
+
- Follow any Project-Specific Instructions section at the end; it overrides
|
|
65
|
+
these general rules where they conflict.
|
|
66
|
+
|
|
67
|
+
## Verification
|
|
68
|
+
|
|
69
|
+
Investigate thoroughly before reaching conclusions.
|
|
70
|
+
|
|
71
|
+
You are permitted and encouraged to inspect files, run Git commands, execute
|
|
72
|
+
relevant tests and linters, and reproduce suspected defects.
|
|
73
|
+
|
|
74
|
+
**DO NOT EDIT ANY CODE OR TRACKED FILES.**
|
|
75
|
+
|
|
76
|
+
Tests and linters that generate temporary files or coverage data are
|
|
77
|
+
permitted (builds are not); direct their output to your scratch
|
|
78
|
+
directory where the tool allows it. Avoid unnecessary modifications to the
|
|
79
|
+
working tree.
|
|
80
|
+
|
|
81
|
+
## Report
|
|
82
|
+
|
|
83
|
+
Start with a one-line verdict: ready to merge, needs minor changes, or needs
|
|
84
|
+
significant changes.
|
|
85
|
+
|
|
86
|
+
Then list the issues, most severe first, each marked blocking or
|
|
87
|
+
non-blocking. For each issue, identify the affected file and location,
|
|
88
|
+
explain the problem and its impact, and propose a fix. Say how you verified
|
|
89
|
+
it (for example, a reproduction or a test run), or that it is unverified.
|
|
90
|
+
|
|
91
|
+
If you find no issues, say so, and mention any limits of the review.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
What is 27 * 43? Reply with just the number, then one sentence explaining how you got it.
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
# State of the Code Base Prompt
|
|
2
|
+
|
|
3
|
+
You are a senior software architect and code reviewer. Analyze this code base thoroughly and report on its
|
|
4
|
+
state, focusing on weaknesses, risks, and areas for improvement. For each issue, assess its seriousness and
|
|
5
|
+
cost to fix, and give a high-level strategy for addressing it.
|
|
6
|
+
|
|
7
|
+
**DO NOT MAKE ANY CODE CHANGES. REVIEW ONLY.**
|
|
8
|
+
|
|
9
|
+
> **Test coverage is out of scope for this review.** Do not analyze coverage data or score coverage; it is
|
|
10
|
+
> handled in depth by a separate prompt, `test-coverage-analysis-prompt.md` (in the same directory as this
|
|
11
|
+
> one).
|
|
12
|
+
|
|
13
|
+
## Ground Rules
|
|
14
|
+
|
|
15
|
+
- First read the project's agent and contributor guidance (e.g., AGENTS.md, CLAUDE.md, CONTRIBUTING.md) and
|
|
16
|
+
the README.
|
|
17
|
+
- Back every finding with evidence: cite `path/to/file.rb:line` (or a command and its output). Label anything
|
|
18
|
+
you could not verify as an inference.
|
|
19
|
+
- Do not invent issues to fill sections. If a section has nothing significant, say so briefly.
|
|
20
|
+
- Only run commands that do not change the host or external systems (e.g., the default test suite, linters).
|
|
21
|
+
Do not run anything that deploys, publishes, migrates real data, or calls paid or production services.
|
|
22
|
+
- Follow the Project-Specific Instructions at the end, if any; they override these general rules where they
|
|
23
|
+
conflict.
|
|
24
|
+
- If earlier reports of this kind exist in the output directory, compare with the most recent one and note
|
|
25
|
+
what has improved or regressed.
|
|
26
|
+
|
|
27
|
+
## Output
|
|
28
|
+
|
|
29
|
+
Write the report to `untracked/` (create it if needed) unless the Project-Specific Instructions name another
|
|
30
|
+
directory. Name it `YYYY-MM-DD-HH-MM-SS-state-of-the-code-base-<agent>.md`, where the timestamp is the current
|
|
31
|
+
UTC time to the second and `<agent>` is your lowercase tool or model family name (e.g. `claude`, `codex`,
|
|
32
|
+
`gemini`, `zai`).
|
|
33
|
+
|
|
34
|
+
Begin the report with:
|
|
35
|
+
|
|
36
|
+
1. The most recent git commit (hash and subject) at the time you begin.
|
|
37
|
+
2. The git-tracked files with staged or unstaged changes, from `git status`, or "None". Ignore untracked
|
|
38
|
+
files.
|
|
39
|
+
3. A note that test coverage is excluded and is covered by the separate test coverage analysis report.
|
|
40
|
+
|
|
41
|
+
## Scoring
|
|
42
|
+
|
|
43
|
+
Score each dimension from 1 to 10:
|
|
44
|
+
|
|
45
|
+
- **9–10:** Exemplary; nothing significant to fix.
|
|
46
|
+
- **7–8:** Solid; minor issues only.
|
|
47
|
+
- **5–6:** Adequate; notable issues that slow work or add risk.
|
|
48
|
+
- **3–4:** Weak; issues that regularly cause defects or friction.
|
|
49
|
+
- **1–2:** Failing; needs immediate attention.
|
|
50
|
+
|
|
51
|
+
Choose weights suited to this project's nature (e.g., a library, CLI, web service, or data pipeline), and
|
|
52
|
+
explain the choice briefly. The weights must sum to 100%.
|
|
53
|
+
|
|
54
|
+
## Report Structure
|
|
55
|
+
|
|
56
|
+
### Executive Summary
|
|
57
|
+
|
|
58
|
+
- A concise overview of the code base's overall health.
|
|
59
|
+
- The strongest and weakest areas.
|
|
60
|
+
- A **one-line verdict** (e.g., *"Overall: Fair, with major risks in error handling and dependencies"*).
|
|
61
|
+
- The **Overall Weighted Score (1–10)** from the final section.
|
|
62
|
+
|
|
63
|
+
### Critical Blockers
|
|
64
|
+
|
|
65
|
+
Issues so severe that they must be resolved before meaningful progress can continue, or "None". For each,
|
|
66
|
+
give the **Description**, **Impact**, **Urgency**, and **Cost to Fix** (High/Medium/Low).
|
|
67
|
+
|
|
68
|
+
### Architecture & Design
|
|
69
|
+
|
|
70
|
+
- Summarize the architecture (layering, main components and how they interact, key abstractions).
|
|
71
|
+
- Identify strengths and weaknesses, and areas of high complexity, coupling, or technical debt.
|
|
72
|
+
- Assess maintainability, extensibility (the cost of adding a typical new feature), and clarity.
|
|
73
|
+
- **Score (1–10)**
|
|
74
|
+
|
|
75
|
+
### Code Quality
|
|
76
|
+
|
|
77
|
+
- Identify recurring issues: duplication, long methods, deep nesting, unclear naming.
|
|
78
|
+
- Point out readability and maintainability concerns.
|
|
79
|
+
- **Score (1–10)**
|
|
80
|
+
|
|
81
|
+
### Build, CI & Release
|
|
82
|
+
|
|
83
|
+
- Evaluate CI/CD pipelines, build scripts and task runners, packaging and release processes, git hooks,
|
|
84
|
+
containers, and infrastructure-as-code, as present.
|
|
85
|
+
- Highlight brittle, outdated, or redundant configuration, and gaps in what CI verifies (platforms, runtime
|
|
86
|
+
versions, checks).
|
|
87
|
+
- **Score (1–10)**
|
|
88
|
+
|
|
89
|
+
### Dependencies & External Integrations
|
|
90
|
+
|
|
91
|
+
- List major runtime and development dependencies, and external services, APIs, or system tools the code
|
|
92
|
+
relies on.
|
|
93
|
+
- Note outdated, unmaintained, or risky dependencies and their upgrade cost.
|
|
94
|
+
- Assess vendor lock-in and fragility against changes in external integrations.
|
|
95
|
+
- **Score (1–10)**
|
|
96
|
+
|
|
97
|
+
### Security & Reliability
|
|
98
|
+
|
|
99
|
+
- Identify insecure practices: injection risks (shell, SQL, etc.), hardcoded secrets, secrets leaking into
|
|
100
|
+
logs or output, and missing input validation.
|
|
101
|
+
- Assess error handling, timeouts, retries, and behavior when external calls fail or return unexpected
|
|
102
|
+
results.
|
|
103
|
+
- **Score (1–10)**
|
|
104
|
+
|
|
105
|
+
### Documentation & Onboarding
|
|
106
|
+
|
|
107
|
+
- Evaluate the README, user documentation, inline docs, and contributor/agent guidance.
|
|
108
|
+
- Identify missing, outdated, or inconsistent documentation, including docs that contradict the code.
|
|
109
|
+
- **Score (1–10)**
|
|
110
|
+
|
|
111
|
+
### Performance & Efficiency
|
|
112
|
+
|
|
113
|
+
- Highlight bottlenecks and inefficient patterns (e.g., startup time, redundant I/O or external calls, N+1
|
|
114
|
+
queries, unnecessary polling).
|
|
115
|
+
- State whether each optimization is low-cost or high-cost.
|
|
116
|
+
- **Score (1–10)**
|
|
117
|
+
|
|
118
|
+
### Formatting & Style Conformance
|
|
119
|
+
|
|
120
|
+
- Report the configured linters' and formatters' results and any significant patterns behind them.
|
|
121
|
+
- Report formatting problems in other files (broken Markdown, inconsistent YAML, and the like).
|
|
122
|
+
- **Score (1–10)**
|
|
123
|
+
|
|
124
|
+
### Best Practices & Conciseness
|
|
125
|
+
|
|
126
|
+
- Assess adherence to the language's idioms and conventions, modularization, and separation of concerns.
|
|
127
|
+
- Evaluate verbosity against clarity: is the code concise without being cryptic?
|
|
128
|
+
- **Score (1–10)**
|
|
129
|
+
|
|
130
|
+
### Prioritized Issue List
|
|
131
|
+
|
|
132
|
+
A table of the top issues, ordered so that working through them top to bottom delivers the most value
|
|
133
|
+
soonest (weigh severity against cost to fix; cheap, high-impact fixes come first).
|
|
134
|
+
|
|
135
|
+
| ID | Issue | Location | Severity | Cost to Fix | Impact if Unaddressed |
|
|
136
|
+
|----|-------|----------|----------|-------------|-----------------------|
|
|
137
|
+
| 1 | Example issue description | `src/foo.rb:42` | High | Low | Silent data loss on retry |
|
|
138
|
+
|
|
139
|
+
### High-Level Recommendations
|
|
140
|
+
|
|
141
|
+
- General strategies for improvement (refactoring, dependency upgrades, modularization).
|
|
142
|
+
- Where incremental change is enough and where larger changes are justified.
|
|
143
|
+
|
|
144
|
+
### Suggested Prompts
|
|
145
|
+
|
|
146
|
+
For each major issue, a self-contained prompt for a coding AI tool that would address it. Reference the
|
|
147
|
+
issue's ID.
|
|
148
|
+
|
|
149
|
+
### Overall Weighted Score
|
|
150
|
+
|
|
151
|
+
Show the weights table and the calculation (score × weight for each dimension, summed). Then give the
|
|
152
|
+
**Overall Weighted Score (1–10)** with a brief justification.
|
|
153
|
+
|
|
154
|
+
| Dimension | Score | Weight | Weighted |
|
|
155
|
+
|------------------------------|-------|--------|----------|
|
|
156
|
+
| Architecture & Design | ? | ?% | ? |
|
|
157
|
+
| Code Quality | ? | ?% | ? |
|
|
158
|
+
| Build, CI & Release | ? | ?% | ? |
|
|
159
|
+
| Dependencies | ? | ?% | ? |
|
|
160
|
+
| Security & Reliability | ? | ?% | ? |
|
|
161
|
+
| Documentation | ? | ?% | ? |
|
|
162
|
+
| Performance & Efficiency | ? | ?% | ? |
|
|
163
|
+
| Formatting & Style | ? | ?% | ? |
|
|
164
|
+
| Best Practices & Conciseness | ? | ?% | ? |
|
|
165
|
+
| **Total** | | 100% | **?** |
|
|
166
|
+
|
|
167
|
+
## Project-Specific Instructions
|
|
168
|
+
|
|
169
|
+
None. When adapting this prompt to a project, replace this paragraph with that project's specifics: what
|
|
170
|
+
kind of software it is (so the weights fit), which commands are safe to run and which must never be run,
|
|
171
|
+
design-decision or reviewer-guideline documents to read first, and areas each dimension should examine
|
|
172
|
+
closely.
|