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
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
"typecheck": "pnpm -r typecheck",
"check": "pnpm lint && pnpm typecheck && pnpm test",
"dev": "pnpm --filter @sentry/dotagents dev",
"smoke:examples": "pnpm build && node scripts/smoke-examples.mjs"
"smoke:examples": "pnpm qa:example",
"qa:example": "pnpm build && node skills/dotagents-qa/scripts/qa-example.mjs"
},
"simple-git-hooks": {
"pre-commit": "pnpm lint-staged"
Expand Down
32 changes: 16 additions & 16 deletions skills/dotagents-qa/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@ Write down the QA target before running commands:
broken state, user-scope state, or remote source.

Read the targeted reference before running runtime-specific QA:
- Core install/sync example: [references/core-smoke.md](references/core-smoke.md)
- Codex custom agents: [references/codex.md](references/codex.md)
- Claude Code files/runtime caveats: [references/claude.md](references/claude.md)
- Core install/sync example: [references/core-agentic-qa.md](references/core-agentic-qa.md)
- Codex custom agents and runtime caveats: [references/codex.md](references/codex.md)
- Claude Code files and runtime caveats: [references/claude.md](references/claude.md)
- Cursor files/runtime caveats: [references/cursor.md](references/cursor.md)
- OpenCode files/runtime caveats: [references/opencode.md](references/opencode.md)

Expand Down Expand Up @@ -119,7 +119,7 @@ su -s /bin/bash node -c '
pnpm install --frozen-lockfile
pnpm build
pnpm check
pnpm smoke:examples
pnpm qa:example
'
```

Expand All @@ -128,17 +128,17 @@ the check is already known to be unrelated. If `build` or `check` fails, treat
that as a QA finding and stop before fixture work unless you are explicitly
isolating the playbook mechanics. If skipped or bypassed, report why.

## 3. Prefer The Checked-In Smoke
## 3. Prefer The Checked-In Agentic QA

Use the checked-in example smoke for ordinary install/sync QA:
Use the checked-in example QA for ordinary install/sync QA:

```bash
pnpm smoke:examples
pnpm qa:example
```

The smoke builds the local CLI, copies `examples/full/` to a temp project, and
The QA runner builds the local CLI, copies `examples/full/` to a temp project, and
asserts:
- `install`, `list`, `doctor --fix`, and `doctor`
- `install`, `list`, `doctor --fix`, and `doctor` complete successfully
- managed skills under `.agents/skills/`
- Claude/Cursor skill symlink behavior
- MCP files for Claude, Cursor, Codex, and OpenCode
Expand All @@ -147,15 +147,15 @@ asserts:
- generated subagent runtime files for Claude, Cursor, Codex, and OpenCode
- `sync` repair after deleting representative generated files

Use `node scripts/smoke-examples.mjs --keep` when you need to inspect the temp
project; the script prints the retained path.
Use `node skills/dotagents-qa/scripts/qa-example.mjs all --keep` when you need
to inspect the temp project; the script prints the retained path.

For paid Codex runtime proof of generated custom agents, run the runtime proof
outside Docker only when the branch affects Codex custom agents or when
reporting that Codex itself works:

```bash
node scripts/smoke-examples.mjs --codex-runtime --keep
node skills/dotagents-qa/scripts/qa-example.mjs codex-runtime --keep
```

That mode copies Codex auth/config into a temp `CODEX_HOME`, marks only the
Expand Down Expand Up @@ -320,10 +320,10 @@ opencode --version
```

Codex subagents need real runtime proof before claiming Codex loaded them. Use
`node scripts/smoke-examples.mjs --codex-runtime --keep`; `codex debug
prompt-input` is not enough unless it visibly includes the generated agent name
or instructions. Project-scoped `.codex/agents/` load only when Codex trusts
the project. See [references/codex.md](references/codex.md).
`node skills/dotagents-qa/scripts/qa-example.mjs codex-runtime --keep`;
`codex debug prompt-input` is not enough unless it visibly includes the
generated agent name or instructions. Project-scoped `.codex/agents/` load only
when Codex trusts the project. See [references/codex.md](references/codex.md).

Claude has no cheap dry-run skill list. If auth/network/model cost is
acceptable, run a minimal non-interactive prompt from the temp project;
Expand Down
2 changes: 1 addition & 1 deletion skills/dotagents-qa/SOURCES.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

## Decisions

- Keep the runtime skill as a guided QA playbook rather than a broad QA matrix or fixed smoke harness.
- Keep the runtime skill as a guided QA playbook rather than a broad QA matrix or fixed all-in-one harness.
- Provide a repo-local Dockerfile for the sandbox/toolchain only; keep fixture design and assertions manual.
- Keep the Dockerfile's prepared pnpm version aligned with the root `packageManager`.
- Mount the host checkout read-only and do dependency install/build inside Docker to avoid host system-file writes and host binary assumptions.
Expand Down
4 changes: 2 additions & 2 deletions skills/dotagents-qa/SPEC.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Out of scope:
- release publishing
- network-backed source testing for ordinary install-location changes
- replacing focused Vitest regression coverage for logic bugs
- treating a fixed smoke script as sufficient QA for behavior-specific changes
- treating a fixed all-in-one QA task as sufficient for behavior-specific changes

## Runtime Contract

Expand All @@ -36,6 +36,6 @@ Out of scope:
## Maintenance

- Keep `SKILL.md` focused on guided, change-specific Docker QA.
- Keep examples editable and illustrative; do not turn the skill into a fixed test harness.
- Keep examples editable and illustrative; do not turn the skill into a fixed all-in-one harness.
- Keep the Dockerfile pnpm version aligned with the root `packageManager`.
- Update examples when dotagents changes config fields, generated file locations, or supported agents.
2 changes: 1 addition & 1 deletion skills/dotagents-qa/references/claude.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Use this reference when changes affect Claude Code skill symlinks, `.claude/sett

## File-Level Checks

The core smoke asserts:
The core agentic QA asserts:

- `.claude/skills` is a symlink to `.agents/skills`
- `.mcp.json` exists for Claude MCP config
Expand Down
8 changes: 4 additions & 4 deletions skills/dotagents-qa/references/codex.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Use this reference when changes affect Codex config generation, `.codex/agents/*

## File-Level Checks

The core smoke asserts:
The core agentic QA asserts:

- `.codex/config.toml` exists for MCP config
- `.codex/agents/code-reviewer.toml` exists
Expand All @@ -19,10 +19,10 @@ These checks prove dotagents wrote the expected files. They do not prove Codex l
Run the paid runtime proof when the branch affects Codex custom agents or when reporting that Codex itself works:

```bash
node scripts/smoke-examples.mjs --codex-runtime --keep
node skills/dotagents-qa/scripts/qa-example.mjs codex-runtime --keep
```

The script:
The task:

- copies `examples/full/` to a temp project
- runs the built local dotagents CLI
Expand All @@ -48,4 +48,4 @@ Project-scoped `.codex/` layers load only when Codex trusts the project. A one-o

If Codex reports `unknown agent_type`, check project trust and the canonical path (`pwd -P`) before assuming the generated TOML schema is wrong.

Do not leave copied Codex auth in retained temp directories. The smoke script scrubs its temp `codex-home`; if you run manual experiments, remove copied auth/config before reporting.
Do not leave copied Codex auth in retained temp directories. The QA task scrubs its temp `codex-home`; if you run manual experiments, remove copied auth/config before reporting.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Core Smoke
# Core Agentic QA

Use this reference for ordinary dotagents install/sync QA before drilling into a specific runtime.

Expand All @@ -7,12 +7,12 @@ Use this reference for ordinary dotagents install/sync QA before drilling into a
Run:

```bash
pnpm smoke:examples
pnpm qa:example
```

This builds the local CLI, copies `examples/full/` to a temp project, and verifies:

- `install`, `list`, `doctor --fix`, and `doctor`
- `install`, `list`, `doctor --fix`, and `doctor` complete successfully
- managed skills under `.agents/skills/`
- Claude/Cursor skill symlink behavior
- MCP files for Claude, Cursor, Codex, and OpenCode
Expand All @@ -21,7 +21,8 @@ This builds the local CLI, copies `examples/full/` to a temp project, and verifi
- generated subagent runtime files for Claude, Cursor, Codex, and OpenCode
- `sync` repair after deleting representative generated files

Use `node scripts/smoke-examples.mjs --keep` to keep the temp project for inspection. The script prints the project path.
Use `node skills/dotagents-qa/scripts/qa-example.mjs all --keep` to keep the
temp project for inspection. The script prints the project path.

## What This Proves

Expand Down
2 changes: 1 addition & 1 deletion skills/dotagents-qa/references/cursor.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Use this reference when changes affect Cursor skill sharing, `.cursor/mcp.json`,

## File-Level Checks

The core smoke asserts:
The core agentic QA asserts:

- Cursor shares Claude-compatible skills through `.claude/skills`
- `.cursor/mcp.json` exists for Cursor MCP config
Expand Down
2 changes: 1 addition & 1 deletion skills/dotagents-qa/references/opencode.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Use this reference when changes affect OpenCode config generation, `opencode.jso

## File-Level Checks

The core smoke asserts:
The core agentic QA asserts:

- `opencode.json` exists for OpenCode MCP config
- `.opencode/agents/code-reviewer.md` exists
Expand Down
Loading
Loading