code-review-discipline
Practices to apply when taking a code-review assignment. Verify subagent findings against code, grep all call sites of…
Use when writing e2e tests for BYOT/AWID team-certificate auth, testing aw id request --team-auth, building a docker awid-service harness, or validating replay, revocation, fail-closed, and team-scoping behavior.
$ npx -y skills add awebai/aweb --skill byot-e2e-validation --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/byot-e2e-validationContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when writing e2e tests for BYOT/AWID team-certificate auth, testing aw id request --team-auth, building a docker awid-service harness, or validating replay, revocation, fail-closed, and team-scoping behavior.
name: byot-e2e-validation description: Use when writing e2e tests for BYOT/AWID team-certificate auth, testing aw id request --team-auth, building a docker awid-service harness, or validating replay, revocation, fail-closed, and team-scoping behavior.
Use this when testing an agent-first app that relies on AWID team certificates. The goal is to prove the relying-party chain works with real keys, real certificates, real signatures, and real AWID facts.
No mocked certificates. No mocked signatures. No mocked AWID responses. If you are tempted to mock one of those in e2e, you are about to test nothing.
Generate real keys and certificates with `aw id` against a local `awid-service`. Send requests with `aw id request --team-auth`. Unit tests can cover small parsing and interop cases, but the e2e layer must exercise the same cryptographic and registry path a customer uses.
The known-good shape in this repo is `docker-compose.e2e.yml`, `tests/test_e2e_smoke.py`, and the `Makefile` `e2e` target:
1. Docker Compose starts Postgres, Redis, and `awid-service`. 2. `AWID_SKIP_DNS_VERIFY=1` lets tests register disposable `.test` namespaces locally. 3. Each test workspace gets an isolated `HOME` and clean working directory. 4. Provision through the CLI, not fixtures: `aw id create` → `aw id team create` → `aw id team add-member` → `aw id team fetch-cert` → `aw id team switch`. 5. Send the application request with `aw id request --team-auth`; never reimplement signing in test code.
Open finding: current `aw id request --team-auth` needs a workspace binding, not only `.aw/teams.yaml` plus `.aw/team-certs/`. The harness writes a minimal `.aw/workspace.yaml` after fetching the cert so the released CLI sees an active workspace. Document this as a workaround, not as product truth. The file contains only the test service URL, one membership (`team_id`, `alias`, `workspace_id`, `cert_path`, `joined_at`), and workspace metadata (`human_name`, `agent_type`, `workspace_path`, `updated_at`).
Auth-critical negatives must be hard assertions. Do not `xfail` them: an `xfail` on auth failure can hide a regression back to 422, 500, or a bypass.
Cover at least:
replay its headers/body against a different path, a different method, and a different audience/host; all must 401.
auth cache to refresh, and assert the next request fails closed.
succeed while an unexpired cache entry exists, then fail 503/401 after cache expiry. Test both halves.
team's documents; naming another `team_id` in the body must not bypass the certificate's `team_id`.
Also assert attribution fields where writes create history: `did_key`, alias, and certificate id should come from the verified signer.
Make the e2e command boring and repeatable:
wait behavior can be flaky with recreated or stale containers.
and tears everything down.
unexplained log noise.
Use this repo's current harness as the working example:
The code is the source of truth. Keep prose thin and update it when the harness changes.
Communication for AI agents. aweb gives independently running agents stable identities, durable mail and chat, and wake-up events across sessions, runtimes, and machines. Agents can use it through the aw CLI, HTTP API, MCP tools, or event stream.
Practices to apply when taking a code-review assignment. Verify subagent findings against code, grep all call sites of…
Coordinate changes that touch both the aweb OSS repo and the hosted ac repo. OSS lands first; the hosted repository owns…
Deploy the reviewed aweb main commit to the awid.ai static site through its dedicated landing branch.
Connect to the awid.ai production database for migrations, audits, and data operations. Credentials at .env.awid-production.
Test and publish one exact aweb OSS candidate using artifact tags.
Check and set up the aweb channel connection. Verifies workspace binding, team-certificate bootstrap, and Claude Code plugin…