28 KiB
Domain audit: engineering-team/ — new-gen model optimization
Audited: 2026-06-10 · Skills: 51 · Agents: 5 · Commands: 0 · Plugins: 6
Scorecard
| Skill | Verdict | Top issue |
|---|---|---|
| skills/adversarial-reviewer | KEEP | — |
| skills/ai-security | KEEP | — |
| skills/aws-solution-architect | KEEP | cost figures unverified (minor A6) |
| skills/azure-cloud-architect | KEEP | Bicep API versions pinned to 2023 (minor A6) |
| skills/cloud-security | KEEP | — |
| skills/code-reviewer | KEEP | — |
| skills/email-template-builder | OPTIMIZE | 439-line code dump, zero scripts/references (A3, A7) |
| skills/engineering-skills | OPTIMIZE | index skill claims "23 skills" — actual 32; weak as a skill |
| skills/epic-design | KEEP | "You are a world-class expert" filler (minor A2) |
| skills/gcp-cloud-architect | KEEP | — |
| skills/incident-commander | OPTIMIZE | 3 orphan duplicate scripts; SEV taxonomy duplicates incident-response |
| skills/incident-response | KEEP | — |
| skills/ms365-tenant-manager | OPTIMIZE | 3 scripts exist but never referenced in SKILL.md (A3) |
| skills/red-team | KEEP | — |
| skills/security-pen-testing | KEEP | — |
| skills/senior-architect | OPTIMIZE | generic monolith-vs-microservices prose; no verification loop |
| skills/senior-backend | OPTIMIZE | corrupted code snippet (name: "zstringmin1max100") |
| skills/senior-computer-vision | KEEP | — |
| skills/senior-data-engineer | OPTIMIZE | thin body; generic batch-vs-streaming tables (A2) |
| skills/senior-data-scientist | OPTIMIZE | phantom scripts referenced; real 3 scripts orphaned (A3 hard fail) |
| skills/senior-devops | KEEP | — |
| skills/senior-frontend | OPTIMIZE | corrupted snippet ("cdnexamplecom"); mid-file generic React dump |
| skills/senior-fullstack | KEEP | — |
| skills/senior-ml-engineer | OPTIMIZE | GPT-4/GPT-3.5/Claude 3 Opus pricing tables (A6 fail) |
| skills/senior-prompt-engineer | REWRITE | entire skill is GPT-4-era prompt engineering; stale models hardcoded in scripts |
| skills/senior-qa | OPTIMIZE | 2 corrupted code snippets; generic RTL cheatsheet content |
| skills/senior-secops | KEEP | trim BAD/GOOD security basics (minor A2) |
| skills/senior-security | CUT-OR-MERGE | duplicates senior-secops/pen-testing/incident-response; no exact CLI for its 2 scripts |
| skills/stripe-integration-expert | OPTIMIZE | pinned apiVersion: "2024-04-10"; pure code dump, no tools |
| skills/tdd-guide | KEEP | — |
| skills/tech-stack-evaluator | OPTIMIZE | "ecosystem health from GitHub/npm metrics" is offline static data — staleness unlabeled |
| skills/threat-detection | KEEP | — |
| a11y-audit/skills/a11y-audit | KEEP | — |
| google-workspace-cli/skills/google-workspace-cli | REWRITE | install coordinates almost certainly fabricated (npm i -g @anthropic/gws, github.com/googleworkspace/cli) |
| snowflake-development/skills/snowflake-development | KEEP | — |
| playwright-pro/skills/pw | KEEP | — |
| playwright-pro/skills/init | KEEP | — |
| playwright-pro/skills/generate | KEEP | — |
| playwright-pro/skills/review | KEEP | — |
| playwright-pro/skills/fix | KEEP | — |
| playwright-pro/skills/migrate | KEEP | — |
| playwright-pro/skills/coverage | KEEP | — |
| playwright-pro/skills/report | KEEP | — |
| playwright-pro/skills/testrail | KEEP | — |
| playwright-pro/skills/browserstack | KEEP | — |
| self-improving-agent/skills/self-improving-agent | KEEP | — |
| self-improving-agent/skills/review | KEEP | — |
| self-improving-agent/skills/promote | KEEP | — |
| self-improving-agent/skills/extract | KEEP | — |
| self-improving-agent/skills/remember | KEEP | — |
| self-improving-agent/skills/status | KEEP | — |
Totals: KEEP 35 · OPTIMIZE 13 · REWRITE 2 · CUT-OR-MERGE 1
Domain-level findings
- Bulk-edit code corruption (systemic, 4 confirmed sites). A past YAML/quoting sweep mangled string literals inside code blocks:
senior-qa/SKILL.md:123(name: "click-mei-tobeinthedocument"— wasgetByRole('button', { name: /click me/i })+toBeInTheDocument()),senior-qa:244("submiti"),senior-backend:253(name: "zstringmin1max100"— wasz.string().min(1).max(100)),senior-frontend:425(hostname: "cdnexamplecom"— dots stripped). Any model copying these examples emits broken code. Grep pattern to find more: strings that are concatenated identifiers with punctuation stripped. - Stale LLM-era content concentrated in 2 skills + their scripts. senior-prompt-engineer and senior-ml-engineer present GPT-4/GPT-3.5/Claude 3 Opus model names, 8K context windows, and 2024 pricing as current — in SKILL.md, references (
llm_integration_guide.md), and hardcoded in scripts (prompt_optimizer.pyMODEL choices/prices,agent_orchestrator.pycost tables). A6 fail across the whole package, not just prose. - Two generations of skills coexist. The 2026-upgraded trio (senior-fullstack/frontend/backend: decision engines, profiles, forcing questions, composition maps, kill criteria) and the v2.2 security suite (ai-security, threat-detection, incident-response, cloud-security, red-team: exit-code contracts, ATT&CK/ATLAS mapping, anti-patterns) are the new-gen template. The 2025-era role skills (architect, data-scientist, data-engineer, prompt-engineer, qa) still carry "cheatsheet" bodies — generic tables (HTTP status codes, RTL queries, zero-shot vs few-shot) that a frontier model embodies and that cost context for nothing.
- Security skill sprawl with duplicated incident-response content. Four skills carry SEV1-SEV4 frameworks + IR phase checklists (senior-secops, senior-security, incident-response, incident-commander), and OWASP Top 10 appears in 4 places. The v2.2 suite has explicit "this is NOT X" disambiguation tables; the older senior-security does not and is ~80% subsumed.
- Orphan/phantom script wiring (A3). senior-data-scientist references
scripts/train.py/evaluate.py/health_check.py(don't exist) while its 3 real scripts go unmentioned; ms365-tenant-manager never references its 3 scripts; incident-commander ships 6 scripts but wires only 3 (severity_classifier.py,incident_timeline_builder.py,postmortem_generator.pyare duplicates of the wired ones). - Count drift everywhere. README says 18 skills, START_HERE says 14, engineering-skills SKILL.md says 23, plugin.json says 32, root CLAUDE.md says 51. engineering-team/CLAUDE.md documents 7 scripts that don't exist under those names (
fullstack_scaffolder.py,statistical_analyzer.py,etl_generator.py,mlops_setup_tool.py,llm_integration_builder.py,rag_system_builder.pyunder prompt-engineer,video_processor.py). - 18 stale .zip archives at domain root (senior-*.zip, code-reviewer.zip, etc.) — dead weight shipped to every cloner; almost certainly out of sync with the live folders.
- Unverifiable external-tool provenance. google-workspace-cli teaches a
gwsCLI installed vianpm install -g @anthropic/gws(not an Anthropic package) with releases atgithub.com/googleworkspace/cli(not a real repo). If the CLI doesn't exist under these coordinates, the entire 373-line skill + 43 recipes is unusable. - Bright spots worth templating: playwright-pro sub-skills end every workflow with an executable gate ("run
--repeat-each=10, all 10 must pass"); code-reviewer ships regression fixtures with committed expected--jsonoutputs; the security suite's exit-code contracts (0/1/2 with required action) are exactly the A4 pattern the rubric wants.
Per-skill findings
engineering-team/skills/senior-prompt-engineer
Verdict: REWRITE Issues:
- A6 hard fail: GPT-4 cost estimates in sample output (line 57),
--model gpt-4examples (line 72);prompt_optimizer.pyrestricts--modelto gpt-4/gpt-3.5-turbo/claude-3-* with 2024 prices;agent_orchestrator.pydefaults tomodel: gpt-4with stale cost table. - A2: zero-shot/few-shot/CoT/role-prompting tables and "add format enforcement" guidance are 2023-era basics a frontier model embodies.
- A5 gap: nothing on current practice — structured outputs/tool-use APIs, prompt caching, eval-driven iteration, agent context engineering.
- No verification loop beyond "run both prompts against your eval set" (manual). Verify (definition of done):
grep -rE "gpt-4|gpt-3\.5|claude-3-" skills/senior-prompt-engineer/returns 0 hits.python3 scripts/prompt_optimizer.py /tmp/p.txt --analyzeexits 0 and model list contains only current-generation model IDs (or is model-agnostic).- SKILL.md workflow ends with an executable eval gate (script run + exit-code assertion), not "compare outputs".
engineering-team/google-workspace-cli/skills/google-workspace-cli
Verdict: REWRITE Issues:
- Install section points to
npm install -g @anthropic/gwsandgithub.com/googleworkspace/cli/releases— neither coordinate is verifiable as real; skill is unusable if the CLI doesn't exist as described. - All 43 recipes, persona bundles, and command syntax inherit this provenance risk (A5/A6).
- The 5 Python wrappers (
gws_doctor.pyetc.) are fine but only meaningful ifgwsresolves. Verify (definition of done): - Documented install command succeeds on a clean machine (
gws --versionexits 0), or the skill is rebuilt around a verifiable tool (GAM7 / Google Workspace Admin SDK + gcloud). python3 scripts/gws_doctor.pyexits non-zero with a clear "gws not installed" message (graceful degradation check).- 5 randomly sampled recipe commands validated against the CLI's actual
--helpoutput.
engineering-team/skills/senior-security
Verdict: CUT-OR-MERGE (fold into senior-secops; keep threat modeling) Issues:
- ~80% duplicates siblings: incident-response workflow (also in senior-secops + incident-response), secure-code-review checklist (code-reviewer), security headers (senior-secops), tool lists (security-pen-testing).
- A3: scripts section says "see the script source files directly" — no exact CLI invocations for
threat_modeler.py/secret_scanner.py, no output consumption. - Unique value is only the STRIDE-per-element matrix + DREAD scoring + threat_modeler.py. Verify (definition of done):
python3 scripts/threat_modeler.py --helpexits 0 and the surviving SKILL.md (wherever it lands) shows an exact invocation whose JSON output feeds a named next step.- After merge,
grep -l "STRIDE" engineering-team/skills/*/SKILL.mdreturns exactly one file. - No SEV/IR phase table remains in the merged body (route to incident-response instead).
engineering-team/skills/senior-ml-engineer
Verdict: OPTIMIZE Issues:
- A6: cost table (lines 154-157) lists GPT-4/GPT-3.5/Claude 3 Opus/Haiku at 2024 prices;
references/llm_integration_guide.mdrepeats it plus "GPT-4 8,192 context" andmodel="gpt-4"defaults. - Provider abstraction + tenacity retry code is generic boilerplate (A2).
- Tools shown with one-line CLI but no output-consumption step (
--deployflag semantics unstated). Verify (definition of done): grep -rE "GPT-4|GPT-3\.5|Claude 3 " skills/senior-ml-engineer/returns 0 hits.python3 scripts/model_deployment_pipeline.py --helpexits 0 and SKILL.md states what artifact each tool emits and which workflow step consumes it.
engineering-team/skills/senior-data-scientist
Verdict: OPTIMIZE Issues:
- A3 hard fail: "Common Commands" references
scripts/train.py,scripts/evaluate.py,scripts/health_check.py— none exist; the real scripts (experiment_designer.py,feature_engineering_pipeline.py,model_evaluation_suite.py) are never mentioned. - Body is inline Python a frontier model writes on demand; the embedded checklists (SRM check <0.01, Bonferroni, parallel trends, HC3) are the actual value — keep those, cut the function bodies.
- Generic kubectl/docker/helm command block is irrelevant filler (A7). Verify (definition of done):
- Every script path in SKILL.md exists:
grep -o "scripts/[a-z_]*\.py" SKILL.md | xargs -I{} test -f skills/senior-data-scientist/{}all pass. python3 scripts/experiment_designer.py --helpexits 0 and SKILL.md shows an exact invocation per tool.
engineering-team/skills/senior-qa
Verdict: OPTIMIZE Issues:
- Corrupted snippets at lines 123 and 244 (mangled
getByRolecalls) — copy-paste hazards. - RTL query/async/MSW quick-reference is frontier-model-embodied content (A2); MSW example uses deprecated
restAPI (v1) — current msw ishttp(A6). actions/upload-artifact@v3in CI example is deprecated.- Coverage workflow is good (threshold +
--strictexit 1) — keep. Verify (definition of done): - All TS/TSX code blocks in SKILL.md parse (extract fenced blocks, run through
tsc --noEmitor eslint-parse smoke check). python3 scripts/coverage_analyzer.py assets-or-sample --threshold 80documented and exits per stated contract (0 pass / 1 below threshold).
engineering-team/skills/senior-frontend
Verdict: OPTIMIZE Issues:
- Corrupted config at line 425:
remotePatterns: [{ hostname: "cdnexamplecom" }](dots stripped). - Lines 197-465: compound-components/render-props/Image/Suspense dump duplicates what the model knows and what
references/react_patterns.mdalready holds — violates progressive disclosure (A2). - The 2026 wrapper (profiles, decision engine, forcing questions) is excellent; the legacy middle dilutes it. Verify (definition of done):
python3 scripts/frontend_decision_engine.py --primary-device mobile-4g --lcp-target-ms 2000 --seo-dependent true --auth-walled false --team-size 5exits 0 and emits matched profile + thresholds.- SKILL.md under 350 lines with pattern code moved to references/; corrupted snippet fixed.
engineering-team/skills/senior-backend
Verdict: OPTIMIZE Issues:
- Corrupted Zod snippet at line 253 (
name: "zstringmin1max100"). - HTTP status-code table, REST response formats = frontier-embodied filler (A2).
- Load-tester flags shown (
--expect-rate-limit,--expect-status) need verification against actual argparse surface. Verify (definition of done): python3 scripts/backend_decision_engine.py --team-size 8 --qps-p99 50 --read-write-ratio 20 --tenancy shared-multi-tenant --data-sensitivity pii --pattern modular-monolith --language-preference typescriptexits 0 with profile + SLO floor + approver chain.python3 scripts/api_load_tester.py --helplists every flag SKILL.md uses.
engineering-team/skills/senior-architect
Verdict: OPTIMIZE Issues:
- Monolith-vs-microservices checkboxes and team-size tables are generic (A2) — senior-fullstack's forcing-question + kill-criterion treatment of the same decision is strictly better; cross-link instead of duplicating.
- No verification loop: workflows end at "document decision" (A4).
- Tools are well-wired (exact CLI, sample outputs) — keep. Verify (definition of done):
python3 scripts/dependency_analyzer.py . --output jsonexits 0 and emitscircular+coupling_scorekeys; SKILL.md workflow ends with "re-run analyzer, assert circular = 0".- ADR step references a concrete template file that exists in the package.
engineering-team/skills/senior-data-engineer
Verdict: OPTIMIZE Issues:
- 34-line trigger-phrase section is frontmatter duplication (A2); body's batch-vs-streaming and Lambda-vs-Kappa tables are textbook content.
- "Workflows → See references/workflows.md" and "Troubleshooting → See ..." one-liners make the body a stub while references hold the substance — inverted disclosure (workflows.md is solid at 624 lines).
- Tool subcommand contracts (
generate/validate/analyze) shown but outputs not consumed by named steps. Verify (definition of done): python3 scripts/data_quality_validator.py --helpexits 0 and supports thevalidate --checks freshness,completeness,uniquenesssyntax shown.- SKILL.md inlines a 10-line decision rule per workflow with the deep dive staying in references/.
engineering-team/skills/incident-commander
Verdict: OPTIMIZE Issues:
- Orphan scripts:
severity_classifier.py,incident_timeline_builder.py,postmortem_generator.pyduplicate the 3 wired tools (A3/A7) — delete or wire. - SEV1-SEV4 definitions overlap incident-response (security flavor) with no disambiguation table; add "this is NOT security incident triage" routing.
- Marketing-prose header block ("battle-tested practices ... at scale") is filler (A2). Verify (definition of done):
ls scripts/ | wc -lequals the number of scripts referenced in SKILL.md.echo '{"description":"...","affected_users":"80%","business_impact":"high"}' | python3 scripts/incident_classifier.pyexits 0 and output matchesexpected_outputs/incident_classification_text_output.txtsemantics.
engineering-team/skills/ms365-tenant-manager
Verdict: OPTIMIZE Issues:
- 3 scripts (
powershell_generator.py,tenant_setup.py,user_management.py) never referenced in SKILL.md; root-levelsample_input.json/expected_output.jsonorphaned too (A3). - PowerShell content is genuinely expert (Graph SDK, CA report-only-first) — keep; just wire or delete the Python layer.
- Verify Graph cmdlet names still current (MSOnline/AzureAD modules retired; this correctly uses Mg* — confirm references do too). Verify (definition of done):
- Either SKILL.md shows exact CLI for all 3 scripts with consumed output, or
scripts/is removed. python3 scripts/powershell_generator.py --helpexits 0 (if retained).
engineering-team/skills/stripe-integration-expert
Verdict: OPTIMIZE Issues:
- Pinned
apiVersion: "2024-04-10"presented as current (A6). - 476 lines of TSX/route-handler code a frontier model writes; the durable value (lifecycle state machine, webhook event ordering, idempotency discipline) should lead, code moved to references/.
- No scripts, no references, no verification loop (A3/A4) — e.g., no webhook-handler checklist gate. Verify (definition of done):
grep -c "apiVersion" SKILL.mdhits use a placeholder + "check current API version" instruction, not a pinned date.- Workflow ends with executable check:
stripe listen/stripe trigger checkout.session.completedsmoke procedure with expected handler behavior stated.
engineering-team/skills/email-template-builder
Verdict: OPTIMIZE (merge candidate with marketing email skills if it stays code-only) Issues:
- Entire skill is one 439-line code dump: no scripts/, references/, assets/ (A3/A7).
- React Email component code is frontier-embodied; the value is the pitfalls list (600px, inline styles, dark-mode
!important, separate sending domains) and provider matrix — invert the ratio. - No verification loop (no spam-score check step, no preview-render gate) (A4). Verify (definition of done):
- SKILL.md ≤ 200 lines centered on client-compatibility rules + deliverability checklist; full code in references/.
- Workflow ends with an executable gate (e.g., render template via
npx react-emailpreview + checklist assertion of plain-text part present).
engineering-team/skills/tech-stack-evaluator
Verdict: OPTIMIZE Issues:
- "Ecosystem health from GitHub, npm metrics" is a stdlib offline tool — data is embedded snapshots with no as-of date; comparisons silently age (A6).
- Quick-start examples are bare prose prompts, not tool invocations — wire them to the scripts.
- 7 scripts but SKILL.md gives exact CLI for only 5 (format_detector, report_generator unmentioned). Verify (definition of done):
python3 scripts/tco_calculator.py --input assets/sample_input_tco.jsonexits 0 and matchesassets/expected_output_comparison.jsonschema.- Every embedded-data script prints a
data_as_offield in JSON output and SKILL.md tells the model to label conclusions with it.
engineering-team/skills/engineering-skills
Verdict: OPTIMIZE Issues:
- Claims "23 production-ready engineering skills";
skills/holds 32; plugin.json says 32; README says 18; START_HERE says 14 — pick one truth (A6/E2). - As a skill it's a static catalog; its only durable instruction ("load one SKILL.md, don't bulk-load") could live in the plugin description.
npx agent-skills-cli add ...install path needs verification. Verify (definition of done):ls -d engineering-team/skills/*/ | wc -lequals the count stated in SKILL.md, plugin.json, README.md, and START_HERE.md.- Skill table lists every actual folder (no missing security-suite rows).
KEEP-verdict verification criteria
- adversarial-reviewer — review output contains all 3 persona sections each with ≥1 finding and ends with verdict ∈ {BLOCK, CONCERNS, CLEAN}; promotion rule applied when 2+ personas overlap.
- ai-security —
python3 scripts/ai_threat_scanner.py --target-type llm --access-level black-box --jsonexits 0/1/2 per contract and JSON hasoverall_risk+findings[].finding_type;--access-level gray-boxwithout--authorizedexits 2. - aws-solution-architect —
python3 scripts/architecture_designer.py --input <sample>emitsrecommended_pattern+estimated_monthly_cost_usd; CloudFormation output passesaws cloudformation validate-template(or cfn-lint) when run. - azure-cloud-architect —
python3 scripts/bicep_generator.py --arch-type web-app --output /tmp/main.bicepexits 0 and output parses withaz bicep buildwhere available. - cloud-security —
python3 scripts/cloud_posture_check.py <iam-sample>.json --check iam --jsonexits 2 on a PassRole+CreateFunction policy and 0 on least-privilege sample. - code-reviewer —
python3 scripts/code_quality_checker.py assets/sample_java_smells.java --json | diff - expected_outputs/sample_java_smells_quality.jsonis empty (regression fixture green); dispatch table covers everylanguages/*.mdfile. - epic-design —
python3 scripts/inspect-assets.py --helpexits 0 without Pillow installed; output format matches references/asset-pipeline.md Step 4 contract. - gcp-cloud-architect —
python3 scripts/cost_optimizer.py --resources <sample>.json --monthly-spend 2000exits 0 with itemized savings. - incident-response —
echo '{"event_type":"ransomware","host":"x","raw_payload":{}}' | python3 scripts/incident_triage.py --classify --jsonexits 2 (SEV1) and maps T1486. - red-team —
python3 scripts/engagement_planner.py --techniques T1059 --access-level external --json(no--authorized) exits 1; with--authorizedexits 0 and orders phases by kill chain. - security-pen-testing —
python3 scripts/vulnerability_scanner.py --target web --scope quick --jsonexits 0 and emits OWASP A01-A10 checklist items;dependency_auditor.py --file package.json --jsonparses. - senior-computer-vision —
python3 scripts/dataset_pipeline_builder.py --helplists--analyze/--clean/--split/--generate-configflags used in SKILL.md;inference_optimizer.py --helplists--benchmark/--export. - senior-devops —
python3 scripts/terraform_scaffolder.py /tmp/infra --provider=aws --module=ecs-serviceexits 0; generated HCL passesterraform validatewhere available; rollback procedure'scurl -sf .../healthzgate retained. - senior-fullstack —
python3 scripts/fullstack_decision_engine.py --sample --output jsonexits 0 withranked_matches[0].profile_nameand emptykill_criteria_tripped(verified this audit); engine refuses (non-zero) when any of the 4 required inputs missing. - senior-secops —
python3 scripts/security_scanner.py <dir>exit codes follow 0/1/2 contract;compliance_checker.py --framework soc2 --jsonemits per-control results; CVE-triage SLA table retained (9.0+ internet-facing = 24h). - tdd-guide —
python3 scripts/coverage_analyzer.py --report assets/sample_coverage_report.lcov --threshold 80exits per contract and P0/P1/P2 buckets present;test_generator.py --input <py> --framework pytestoutput compiles. - threat-detection —
python3 scripts/threat_signal_analyzer.py --mode anomaly --events-file <sample> --baseline-mean 100 --baseline-std 25 --jsonexits 2 only when z ≥ 3.0; IOC mode flags >30-day-old IPs asstale. - a11y-audit —
python3 scripts/contrast_checker.py --fg "#777777" --bg "#ffffff"reports fail at 4.5:1;a11y_scanner.py <dir> --ciexits non-zero only on critical findings;--baselinecomparison runs. - snowflake-development —
python3 scripts/snowflake_query_helper.py merge --target t --source s --key id --columns a,bexits 0 and emitted SQL contains colon-prefix rule compliance in proc templates. - playwright-pro/pw — all 9 sub-skill routes listed exist as skill folders; Quick Start sequence references only shipped commands.
- playwright-pro/init — generated
playwright.config.tssetsretries: 2in CI /0local andtrace: 'on-first-retry'; first smoke test runs. - playwright-pro/generate — workflow step 7 retained:
npx playwright test <file> --reporter=listmust run before reporting done; nowaitForTimeoutin output. - playwright-pro/review — review loads
anti-patterns.md(file exists) and flags a seededpage.waitForTimeout()fixture. - playwright-pro/fix — fix loads
flaky-taxonomy.md(file exists); completion requires--repeat-each=1010/10 green. - playwright-pro/migrate — post-migration step routes to
/pw:coverageparity check before decommissioning old suite. - playwright-pro/coverage — output lists tested vs untested routes with priority ranking.
- playwright-pro/report — report generation consumes
playwright-report/or JSON reporter output, errors clearly when absent. - playwright-pro/testrail — refuses gracefully with setup instructions when
TESTRAIL_URL/USER/API_KEYunset. - playwright-pro/browserstack — refuses gracefully when
BROWSERSTACK_USERNAME/ACCESS_KEYunset. - self-improving-agent (root) — memory-paths table matches current Claude Code memory layout (
~/.claude/projects/<path>/memory/MEMORY.md, 200-line load) — recheck against docs each release. - si/review — spawns memory-analyst; output buckets = promotion candidates / stale / consolidation / conflicts / health.
- si/promote — promotion writes to CLAUDE.md or
.claude/rules/AND removes the MEMORY.md source entry (both halves verified). - si/extract — extracted skill passes
scripts/audit_skills.py(repo validator) with no FAIL. - si/remember — entry written with timestamp + category into the active memory dir.
- si/status — dashboard reports line counts vs 200-line budget and flags overflow topic files.
Agents
| Agent | B1 frontmatter | B2 differentiation | B3 body | Verdict |
|---|---|---|---|---|
| playwright-pro/agents/test-architect | PASS (read-only tools) | PASS — plans, explicitly does not write tests | PASS | KEEP |
| playwright-pro/agents/test-debugger | PASS — exemplary scoped Bash(npx playwright test *) allowlist + disallowedTools |
PASS — taxonomy-driven diagnosis | PASS | KEEP |
| playwright-pro/agents/migration-planner | PASS (read-only) | PASS — detection protocol per framework | PASS | KEEP |
| self-improving-agent/agents/memory-analyst | PASS (Read/Glob/Grep, maxTurns 30) | PASS — read-only analyst, distinct outputs | PASS | KEEP |
| self-improving-agent/agents/skill-extractor | PASS (Write/Edit + disallowedTools) | PASS — portability rules (no hardcoded paths) | PASS | KEEP |
Note: agent descriptions use "Invoked by /pw:..." rather than "Use when..." trigger phrasing — acceptable since they are command-spawned, not auto-triggered.
Commands
None in scope. engineering-team/ ships no commands/ directory; the /pw:* and /si:* surfaces are skills-as-commands (audited above). The grep hits under commands* are reference docs, not slash commands.
Plugin manifests
| Plugin | Issue |
|---|---|
.claude-plugin/plugin.json (engineering-skills) |
Says "32 skills" — matches skills/ dir count, but conflicts with SKILL.md (23), README (18), START_HERE (14). Description is a 1,100-char wall; trim. |
a11y-audit |
Clean; description matches contents. |
google-workspace-cli |
Description repeats the unverifiable gws CLI claims; fix alongside the skill REWRITE. |
playwright-pro (name: pw) |
Clean; "55+ templates, 3 agents" — template count not verified file-by-file but folder structure exists. |
self-improving-agent (name: si) |
Clean; commands listed all exist as sub-skills. |
snowflake-development |
Description's "query helper script, 3 reference guides" verified accurate (1 script, 3 refs). Clean. |
Additional manifest-adjacent debt: 18 stale .zip archives at engineering-team root; engineering-team/CLAUDE.md documents 7 nonexistent script filenames and a "32 skills / 39+ tools" inventory that predates the security suite and sub-plugins.