Skip to content

Commit e85a73f

Browse files
authored
docs: clarify triage preflight checks and repo guidelines (#153)
Reorder the antithesis-triage preflight as an ordered checklist (auth key, snouty doctor, API reachability) so failures get surfaced one cause at a time. Expand AGENTS.md with what `make validate` actually checks, the sibling `<skill>-test/` harness convention, and an explicit note on the automation that owns version bumps and CHANGELOG entries. Add a CLAUDE.md that points Claude Code at AGENTS.md.
1 parent c4480b2 commit e85a73f

3 files changed

Lines changed: 43 additions & 21 deletions

File tree

AGENTS.md

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,16 @@ https://agentskills.io/specification.md
1111

1212
## Build, Test, and Development Commands
1313

14-
- `make validate`: validates all SKILLS align with the specification.
15-
- `make validate-changelog`: validates CHANGELOG.md format.
14+
- `make validate`: checks each `*/SKILL.md` for YAML frontmatter, a `name`
15+
that matches its directory, a non-`TODO` `description`, and at least one
16+
top-level `# ` heading. This is the canonical structural check.
17+
- `make validate-changelog`: validates `CHANGELOG.md` format.
18+
- `make validate-links`: runs the `lychee` link checker (config in
19+
`lychee.toml`).
20+
- `make test`: runs unit tests for skill helper scripts (`process-logs.py`
21+
in triage and debug; `build-url.py` in query-logs).
22+
- `make install-dev`: bootstraps the dev environment via
23+
`scripts/install.sh`.
1624

1725
## Coding Style & Naming Conventions
1826

@@ -32,6 +40,13 @@ Testing is validation-driven:
3240
- Scope: verifies presence and correctness of frontmatter, heading requirements, and skill discovery via `*/SKILL.md`.
3341
- For validator updates, test both pass and fail paths (for example, a missing `description` should fail).
3442

43+
Some skills also ship a live integration harness as a sibling directory
44+
(`<skill>-test/`, e.g. `antithesis-debug-test/`, `antithesis-query-logs-test/`).
45+
These exercise the skill end-to-end against a real Antithesis tenant via
46+
`agent-browser` and are invoked manually with `<skill>-test/run.sh ...`. They
47+
are not wired into `make validate` or `make test` — see each harness's
48+
`README.md` for prerequisites.
49+
3550
## Commit & Pull Request Guidelines
3651

3752
Use clear, conventional commit messages such as:
@@ -43,10 +58,18 @@ PRs should include:
4358

4459
- What changed and why.
4560
- Validation evidence (`make validate` output).
46-
- Any follow-up work or limitations.
61+
- Any follow-up work for future PRs or limitations. Omit if irrelevant.
62+
63+
## Automation: do not bump versions or edit the changelog by hand
64+
65+
Scripts in `.ci-scripts/` run on merge and handle these chores for you. Do not
66+
propose or perform them as part of a PR.
67+
68+
- `update_skill_versions.py` manages `metadata.version` in every `SKILL.md`.
69+
- `changelog.py` appends an entry to `CHANGELOG.md` from the PR title (and the
70+
`changelog - breaking` / `changelog - non-breaking` label, if present). For
71+
notable changes (new skills, breaking changes, significant fixes), add the
72+
appropriate label; breaking entries are prefixed with `BREAKING CHANGE:`.
4773

48-
For notable changes (new skills, breaking changes, significant fixes), add a
49-
`changelog - breaking` or `changelog - non-breaking` label to the PR. A bot
50-
updates `CHANGELOG.md` automatically on merge using the PR title — breaking
51-
entries are prefixed with `BREAKING CHANGE:`. Do not edit `CHANGELOG.md`
52-
directly.
74+
Edit `SKILL.md` content freely, but leave the `metadata.version` field alone,
75+
and do not edit `CHANGELOG.md` directly unless directly requested by the user.

CLAUDE.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
@AGENTS.md

antithesis-triage/SKILL.md

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,25 +23,23 @@ Use this skill to analyze Antithesis test runs.
2323
- DO NOT PROCEED if `jq` is not installed. See `https://jqlang.org/download/` for installation options.
2424
- **Note:** `snouty runs` may be hidden from `snouty --help` but is still supported. If you need to confirm availability or see subcommand syntax, `snouty runs --help` still works.
2525

26-
### API access (rollout in progress)
26+
### Preflight: confirm triage can work
2727

28-
This version of the triage skill talks to Antithesis through the snouty API (`snouty runs ...`). The API is currently being rolled out to all tenants; however, you may encounter a tenant that isn't updated yet. You should detect access before continuing unless you already know (from context or memory) that the tenant in question has the API enabled.
28+
This version of the triage skill talks to Antithesis through the snouty API (`snouty runs ...`). Several things can prevent that from working. Walk down the checklist below in order — it is ordered from the most-likely cause (auth not exported) to the least-likely (tenant missing API access). Stop at the first failing check and surface **only that cause** to the user; do not list the others. Do not attempt real triage work until every check passes.
2929

30-
**Detect missing API access** before doing real work:
30+
You can skip preflight if you already know (from context or memory) that the user's setup is working.
3131

32-
1. Check that `$ANTITHESIS_API_KEY` is set. `snouty doctor` reports this too.
33-
2. If unset, ask the user whether their tenant has API access. If they don't
34-
know or say no, treat the API as unavailable.
35-
3. Optionally probe: `snouty runs list -n 1` — if it fails with an error, the tenant is not yet enrolled.
32+
1. **Is `$ANTITHESIS_API_KEY` set?** This is the most common cause of failure. If unset, tell the user to export it (e.g., `export ANTITHESIS_API_KEY=<their key>`) and stop. Do not speculate about other causes.
3633

37-
**If API access is unavailable**, do NOT attempt to run this skill. Instead, tell the user to either:
34+
2. **Does `snouty doctor` pass?** Run `snouty doctor`. If it reports any failure, relay that failure to the user and stop. Today this mostly re-confirms environment variables, but it is the canonical place where key validity, network reachability, and API-access checks will be surfaced as they are added — so always run it here.
3835

39-
- **Contact Antithesis support** to request API access for their tenant.
40-
- **Or downgrade this skill** to the previous browser-based version on the
41-
`agent-browser-triage` branch:
42-
`https://github.com/antithesishq/antithesis-skills/tree/agent-browser-triage`
36+
3. **Can the API actually be reached?** Probe with `snouty runs list -n 1`. If this errors, the most likely remaining cause is that the tenant is not yet enrolled in the snouty API rollout. Tell the user to either:
37+
- **Contact Antithesis support** to request API access for their tenant, or
38+
- **Downgrade this skill** to the previous browser-based version on the
39+
`agent-browser-triage` branch:
40+
`https://github.com/antithesishq/antithesis-skills/tree/agent-browser-triage`
4341

44-
This fallback is temporary and will be removed once the API rollout completes.
42+
This fallback is temporary and will be removed once the rollout completes.
4543

4644
## Gathering user input
4745

0 commit comments

Comments
 (0)