fix: add penny agent type to spawn requirements schema #135

Merged
forgejo_admin merged 1 commit from 132-add-penny-to-spawn-schema into main 2026-03-24 20:38:16 +00:00
Contributor

Summary

Adds the missing penny agent type to agent-spawn-requirements.json. Penny is the communications and scheduling agent (email, calendar, messages) with no gate and no isolation requirement.

Changes

  • schemas/agent-spawn-requirements.json — added penny entry to the types object with empty required_patterns, produces: ["email", "calendar", "messages"], and isolation: false

Test Plan

  • JSON validated with python3 -c "import json; json.load(open(...))" — passes
  • No hook or runtime changes; schema-only addition

Review Checklist

  • JSON is valid (verified with python3 json.load)
  • Entry follows existing schema structure (description, required_patterns, produces, isolation)
  • No breaking changes to existing agent types
## Summary Adds the missing `penny` agent type to `agent-spawn-requirements.json`. Penny is the communications and scheduling agent (email, calendar, messages) with no gate and no isolation requirement. ## Changes - `schemas/agent-spawn-requirements.json` — added `penny` entry to the `types` object with empty `required_patterns`, `produces: ["email", "calendar", "messages"]`, and `isolation: false` ## Test Plan - JSON validated with `python3 -c "import json; json.load(open(...))"` — passes - No hook or runtime changes; schema-only addition ## Review Checklist - [x] JSON is valid (verified with python3 json.load) - [x] Entry follows existing schema structure (description, required_patterns, produces, isolation) - [x] No breaking changes to existing agent types ## Related - Closes #132
Closes #132

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Contributor

Self-Review

Verdict: Pass — no issues found.

  • 1 file changed, 6 additions, 0 deletions
  • penny entry follows the exact same schema structure as all existing agent types (description, required_patterns, produces, isolation)
  • JSON validated successfully with python3 json.load
  • No changes to existing entries — purely additive
  • PR is mergeable with no conflicts
## Self-Review **Verdict: Pass — no issues found.** - 1 file changed, 6 additions, 0 deletions - `penny` entry follows the exact same schema structure as all existing agent types (description, required_patterns, produces, isolation) - JSON validated successfully with `python3 json.load` - No changes to existing entries — purely additive - PR is mergeable with no conflicts
Author
Contributor

PR #135 Review

DOMAIN REVIEW

Tech stack: Shell hooks + JSON schema (agent infrastructure config in claude-custom).

The diff adds a penny entry to schemas/agent-spawn-requirements.json with 6 new lines. Verified the following integration points:

  • check-agent-spawn.sh reads types[$t] from this schema. With penny added and required_patterns: [], the hook will correctly pass penny spawns through (no gate, same as qa, Explore, claude-code-guide).
  • settings.json SubagentStart matcher (line 241) already includes penny -- done in PR #121. No change needed here.
  • agents/penny.md exists with proper disallowedTools and block-penny-writes.sh hook for defense-in-depth. No change needed.
  • JSON structure matches the existing schema pattern exactly: description, required_patterns, produces, isolation -- all four keys present with correct types.
  • produces: ["email", "calendar", "messages"] accurately reflects Penny's role as the communications agent per agents/penny.md.
  • isolation: false is correct -- Penny runs in the same context (no worktree isolation needed since she writes no code).

No regression to existing agent types: dev, qa, dottie, general-purpose, Explore, claude-code-guide are all untouched.

BLOCKERS

None.

  • No new functionality requiring test coverage (data-only schema addition; the hook consuming this schema is unchanged and already handles the required_patterns: [] path).
  • No user input validation concerns (schema is read by hooks, not user-facing).
  • No secrets or credentials.
  • No DRY violations.

NITS

  1. Discovered scope -- inject-subagent-context.sh missing penny case. The SubagentStart matcher in settings.json includes penny, but the case statement in inject-subagent-context.sh (lines 18-32) has no penny branch. Penny spawns will hit the * fallback and get no context injection. This means the get_note(slug="agent-penny") instruction is never injected at spawn time -- Penny relies solely on agents/penny.md frontmatter. Not a blocker for this PR (separate scope), but should be tracked as a follow-up issue.

SOP COMPLIANCE

  • Branch named after issue: 132-add-penny-to-spawn-schema references #132
  • PR body follows template: Summary, Changes, Test Plan, Review Checklist, Related sections present
  • Related references issue: Closes #132
  • No secrets committed
  • No scope creep -- single file changed, exactly the fix described in the issue
  • Commit message is descriptive (PR title: fix: add penny agent type to spawn requirements schema)

PROCESS OBSERVATIONS

  • Change failure risk: Minimal. Schema-only addition with no logic changes. Existing agent types unaffected.
  • Deployment frequency: Clean single-purpose fix. Good example of atomic change.
  • Documentation gap: The inject-subagent-context.sh penny case is a known gap that should be tracked separately. Recommend creating a Forgejo issue for it.

VERDICT: APPROVED

## PR #135 Review ### DOMAIN REVIEW **Tech stack:** Shell hooks + JSON schema (agent infrastructure config in `claude-custom`). The diff adds a `penny` entry to `schemas/agent-spawn-requirements.json` with 6 new lines. Verified the following integration points: - **`check-agent-spawn.sh`** reads `types[$t]` from this schema. With `penny` added and `required_patterns: []`, the hook will correctly pass penny spawns through (no gate, same as `qa`, `Explore`, `claude-code-guide`). - **`settings.json` SubagentStart matcher** (line 241) already includes `penny` -- done in PR #121. No change needed here. - **`agents/penny.md`** exists with proper `disallowedTools` and `block-penny-writes.sh` hook for defense-in-depth. No change needed. - **JSON structure** matches the existing schema pattern exactly: `description`, `required_patterns`, `produces`, `isolation` -- all four keys present with correct types. - **`produces: ["email", "calendar", "messages"]`** accurately reflects Penny's role as the communications agent per `agents/penny.md`. - **`isolation: false`** is correct -- Penny runs in the same context (no worktree isolation needed since she writes no code). No regression to existing agent types: `dev`, `qa`, `dottie`, `general-purpose`, `Explore`, `claude-code-guide` are all untouched. ### BLOCKERS None. - No new functionality requiring test coverage (data-only schema addition; the hook consuming this schema is unchanged and already handles the `required_patterns: []` path). - No user input validation concerns (schema is read by hooks, not user-facing). - No secrets or credentials. - No DRY violations. ### NITS 1. **Discovered scope -- `inject-subagent-context.sh` missing penny case.** The SubagentStart matcher in `settings.json` includes `penny`, but the case statement in `inject-subagent-context.sh` (lines 18-32) has no `penny` branch. Penny spawns will hit the `*` fallback and get no context injection. This means the `get_note(slug="agent-penny")` instruction is never injected at spawn time -- Penny relies solely on `agents/penny.md` frontmatter. Not a blocker for this PR (separate scope), but should be tracked as a follow-up issue. ### SOP COMPLIANCE - [x] Branch named after issue: `132-add-penny-to-spawn-schema` references #132 - [x] PR body follows template: Summary, Changes, Test Plan, Review Checklist, Related sections present - [x] Related references issue: `Closes #132` - [x] No secrets committed - [x] No scope creep -- single file changed, exactly the fix described in the issue - [x] Commit message is descriptive (PR title: `fix: add penny agent type to spawn requirements schema`) ### PROCESS OBSERVATIONS - **Change failure risk:** Minimal. Schema-only addition with no logic changes. Existing agent types unaffected. - **Deployment frequency:** Clean single-purpose fix. Good example of atomic change. - **Documentation gap:** The `inject-subagent-context.sh` penny case is a known gap that should be tracked separately. Recommend creating a Forgejo issue for it. ### VERDICT: APPROVED
forgejo_admin deleted branch 132-add-penny-to-spawn-schema 2026-03-24 20:38:16 +00:00
Sign in to join this conversation.
No description provided.