wicked-garden 12.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/archetypes.json +166 -0
- package/.claude-plugin/components.json +75 -0
- package/.claude-plugin/marketplace.json +15 -0
- package/.claude-plugin/plugin.json +174 -0
- package/.claude-plugin/specialist.json +48 -0
- package/.claude-plugin/stack-registry.json +96 -0
- package/AGENTS.md +13 -0
- package/CHANGELOG.md +712 -0
- package/CONTRIBUTING.md +99 -0
- package/ETHOS.md +83 -0
- package/LICENSE +21 -0
- package/README.md +115 -0
- package/WICKED_GARDEN_BUS_EVENTS.md +149 -0
- package/agents/agentic/architect.md +449 -0
- package/agents/agentic/performance-analyst.md +702 -0
- package/agents/agentic/safety-reviewer.md +662 -0
- package/agents/crew/implementer.md +163 -0
- package/agents/crew/researcher.md +94 -0
- package/agents/crew/reviewer.md +184 -0
- package/agents/data/data-engineer.md +227 -0
- package/agents/engineering/api-documentarian.md +440 -0
- package/agents/engineering/migration-engineer.md +301 -0
- package/agents/engineering/solution-architect.md +208 -0
- package/agents/jam/brainstorm-facilitator.md +297 -0
- package/agents/jam/council.md +322 -0
- package/agents/jam/quick-facilitator.md +85 -0
- package/agents/persona/persona-agent.md +121 -0
- package/agents/platform/compliance-officer.md +266 -0
- package/agents/platform/privacy-expert.md +496 -0
- package/agents/platform/security-engineer.md +287 -0
- package/agents/product/a11y-expert.md +323 -0
- package/agents/product/requirements-analyst.md +238 -0
- package/agents/product/ui-reviewer.md +180 -0
- package/agents/product/ux-designer.md +199 -0
- package/agents/product/value-strategist.md +269 -0
- package/agents/qe/semantic-reviewer.md +78 -0
- package/commands/agentic/audit.md +24 -0
- package/commands/agentic/design.md +24 -0
- package/commands/agentic/frameworks.md +25 -0
- package/commands/agentic/review.md +27 -0
- package/commands/archetype/build.md +12 -0
- package/commands/archetype/decide.md +12 -0
- package/commands/archetype/explore.md +12 -0
- package/commands/archetype/incident.md +12 -0
- package/commands/archetype/migrate.md +12 -0
- package/commands/archetype/modernize.md +12 -0
- package/commands/archetype/review.md +14 -0
- package/commands/archetype/ship.md +12 -0
- package/commands/archetype/specify.md +12 -0
- package/commands/archetype/triage.md +12 -0
- package/commands/compile.md +37 -0
- package/commands/data/analyze.md +18 -0
- package/commands/data/data.md +21 -0
- package/commands/data/ml.md +18 -0
- package/commands/data/ontology.md +22 -0
- package/commands/data/pipeline.md +17 -0
- package/commands/deliberate.md +181 -0
- package/commands/engineering/add-field.md +77 -0
- package/commands/engineering/apply.md +58 -0
- package/commands/engineering/arch.md +26 -0
- package/commands/engineering/debug.md +27 -0
- package/commands/engineering/docs.md +27 -0
- package/commands/engineering/new-generator.md +257 -0
- package/commands/engineering/patch-plan.md +59 -0
- package/commands/engineering/plan.md +29 -0
- package/commands/engineering/remove.md +48 -0
- package/commands/engineering/rename.md +44 -0
- package/commands/engineering/review.md +32 -0
- package/commands/help.md +128 -0
- package/commands/install.md +118 -0
- package/commands/intent.md +54 -0
- package/commands/jam/brainstorm.md +37 -0
- package/commands/jam/council.md +49 -0
- package/commands/jam/quick.md +21 -0
- package/commands/jam/revisit.md +79 -0
- package/commands/persona/as.md +136 -0
- package/commands/persona/define.md +24 -0
- package/commands/persona/list.md +118 -0
- package/commands/platform/actions.md +20 -0
- package/commands/platform/assert.md +18 -0
- package/commands/platform/audit.md +23 -0
- package/commands/platform/compliance.md +20 -0
- package/commands/platform/gh.md +22 -0
- package/commands/platform/health.md +22 -0
- package/commands/platform/incident.md +23 -0
- package/commands/platform/infra.md +24 -0
- package/commands/platform/peer-health.md +103 -0
- package/commands/platform/plugin-health.md +58 -0
- package/commands/platform/security.md +38 -0
- package/commands/platform/toolchain.md +96 -0
- package/commands/platform/traces.md +20 -0
- package/commands/product/a11y.md +19 -0
- package/commands/product/acceptance.md +19 -0
- package/commands/product/align.md +20 -0
- package/commands/product/analyze.md +23 -0
- package/commands/product/elicit.md +19 -0
- package/commands/product/listen.md +24 -0
- package/commands/product/mockup.md +20 -0
- package/commands/product/screenshot.md +19 -0
- package/commands/product/strategy.md +40 -0
- package/commands/product/synthesize.md +23 -0
- package/commands/product/ux-review.md +42 -0
- package/commands/product/ux.md +20 -0
- package/commands/product/visual-direction.md +34 -0
- package/commands/prove.md +47 -0
- package/commands/report-issue.md +243 -0
- package/commands/reset.md +144 -0
- package/commands/search/blast-radius.md +58 -0
- package/commands/search/hotspots.md +55 -0
- package/commands/search/index.md +38 -0
- package/commands/search/lineage.md +47 -0
- package/commands/search/service-map.md +79 -0
- package/commands/setup.md +363 -0
- package/commands/smaht/briefing.md +200 -0
- package/commands/smaht/events-import.md +95 -0
- package/commands/smaht/state.md +19 -0
- package/commands/where-am-i.md +58 -0
- package/docs/README.md +32 -0
- package/docs/adr/0001-code-relationship-graph-engine.md +116 -0
- package/docs/adr/0002-major-cleanup-keep-cut.md +91 -0
- package/docs/adr/0003-peers-gate-required-layers-optin.md +41 -0
- package/docs/adr/0004-code-graph-moves-to-wicked-brain.md +47 -0
- package/docs/brain-chunk-format.md +135 -0
- package/docs/compiler.md +95 -0
- package/docs/daemon-api.md +70 -0
- package/docs/domains.md +197 -0
- package/docs/getting-started.md +208 -0
- package/docs/plans/2026-06-08-wicked-loom-conduct.md +1337 -0
- package/docs/plans/2026-06-08-wicked-loom-contract.md +638 -0
- package/docs/plans/2026-06-08-wicked-loom-cutover.md +1300 -0
- package/docs/plans/2026-06-08-wicked-loom-expand-compose.md +843 -0
- package/docs/plans/2026-06-08-wicked-loom-flow-cutover.md +403 -0
- package/docs/plans/2026-06-10-codegraph-to-brain-phase1a-graph-core.md +838 -0
- package/docs/plans/2026-06-10-codegraph-to-brain-phase1b-injected-edges.md +44 -0
- package/docs/required-peers.md +60 -0
- package/docs/specs/2026-06-08-wicked-loom-extraction.md +225 -0
- package/docs/specs/2026-06-10-codegraph-to-brain-migration.md +168 -0
- package/docs/v11/archetypes.md +231 -0
- package/hooks/hooks.json +275 -0
- package/hooks/scripts/bootstrap.py +1797 -0
- package/hooks/scripts/invoke.py +62 -0
- package/hooks/scripts/notification.py +166 -0
- package/hooks/scripts/permission_request.py +223 -0
- package/hooks/scripts/post_tool.py +1374 -0
- package/hooks/scripts/pre_compact.py +272 -0
- package/hooks/scripts/pre_tool.py +1278 -0
- package/hooks/scripts/prompt_submit.py +1109 -0
- package/hooks/scripts/session_end.py +95 -0
- package/hooks/scripts/stop.py +624 -0
- package/hooks/scripts/subagent_lifecycle.py +464 -0
- package/hooks/scripts/subscribers/on_gate_decided.py +84 -0
- package/hooks/scripts/task_completed.py +322 -0
- package/hooks/scripts/worktree_guard.py +148 -0
- package/hooks/subscriptions/on_gate_decided.json +9 -0
- package/install.mjs +128 -0
- package/package.json +41 -0
- package/pyproject.toml +59 -0
- package/schemas/README.md +32 -0
- package/schemas/assert_contracts.json +37 -0
- package/schemas/health_probe.json +46 -0
- package/schemas/plugin_status.json +37 -0
- package/scripts/_adapters/__init__.py +166 -0
- package/scripts/_adapters/jira_adapter.py +18 -0
- package/scripts/_adapters/linear_adapter.py +18 -0
- package/scripts/_adapters/miro_adapter.py +18 -0
- package/scripts/_adapters/notion_adapter.py +18 -0
- package/scripts/_agents.py +357 -0
- package/scripts/_brain_ingest/__init__.py +2 -0
- package/scripts/_brain_ingest/session_fact_extractor.py +341 -0
- package/scripts/_brain_port.py +163 -0
- package/scripts/_bus.py +1081 -0
- package/scripts/_bus_catalog_gen.py +93 -0
- package/scripts/_bus_consumers.json +46 -0
- package/scripts/_bus_emit.py +43 -0
- package/scripts/_capability_registry.py +334 -0
- package/scripts/_capability_resolver.py +322 -0
- package/scripts/_domain_store.py +559 -0
- package/scripts/_event_log_reader.py +154 -0
- package/scripts/_event_schema.py +305 -0
- package/scripts/_event_store.py +397 -0
- package/scripts/_heavy_cadence.py +324 -0
- package/scripts/_integration_resolver.py +321 -0
- package/scripts/_logger.py +151 -0
- package/scripts/_loom.py +482 -0
- package/scripts/_paths.py +133 -0
- package/scripts/_python.sh +22 -0
- package/scripts/_run.py +137 -0
- package/scripts/_session.py +502 -0
- package/scripts/_validate_registry.py +1042 -0
- package/scripts/_wicked_testing_probe.py +277 -0
- package/scripts/agentic/analyze_agents.py +391 -0
- package/scripts/agentic/detect_framework.py +420 -0
- package/scripts/agentic/issue_taxonomy.py +357 -0
- package/scripts/agentic/pattern_scorer.py +434 -0
- package/scripts/classify/persist.py +169 -0
- package/scripts/compiler/compile.py +552 -0
- package/scripts/compiler/phase0/VERDICT.md +60 -0
- package/scripts/compiler/phase0/detect.py +292 -0
- package/scripts/compiler/phase0/emit.py +228 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.bindings.json +30 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.lint-output.txt +17 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/.wg/evidence/failing-tests.txt +4 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/.wg/evidence/honest-tests.txt +2 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/fab-fail.build.md +8 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/fab-missing.build.md +8 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/honest.build.md +8 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/wg_check_claims.py +174 -0
- package/scripts/compiler/phase0/evidence/command_iq.bindings.json +45 -0
- package/scripts/compiler/phase0/evidence/command_iq.lint-output.txt +17 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/.projects/evidence-domain/phase-1-clarify/evidence/failing-tests.txt +4 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/.projects/evidence-domain/phase-1-clarify/evidence/honest-tests.txt +3 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/fab-fail.build.md +8 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/fab-missing.build.md +8 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/honest.build.md +8 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/wg_check_claims.py +174 -0
- package/scripts/compiler/phase0/evidence/memos.bindings.json +28 -0
- package/scripts/compiler/phase0/evidence/memos.lint-output.txt +17 -0
- package/scripts/compiler/phase0/evidence/memos.stage/.wg/evidence/failing-tests.txt +4 -0
- package/scripts/compiler/phase0/evidence/memos.stage/.wg/evidence/honest-tests.txt +2 -0
- package/scripts/compiler/phase0/evidence/memos.stage/fab-fail.build.md +8 -0
- package/scripts/compiler/phase0/evidence/memos.stage/fab-missing.build.md +8 -0
- package/scripts/compiler/phase0/evidence/memos.stage/honest.build.md +8 -0
- package/scripts/compiler/phase0/evidence/memos.stage/wg_check_claims.py +174 -0
- package/scripts/compiler/phase0/evidence/verdict.json +104 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.bindings.json +29 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.lint-output.txt +17 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/coverage/failing-tests.txt +4 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/coverage/honest-tests.txt +3 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/fab-fail.build.md +8 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/fab-missing.build.md +8 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/honest.build.md +8 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/wg_check_claims.py +174 -0
- package/scripts/compiler/phase0/evidence/wire-vault-transcript.txt +60 -0
- package/scripts/compiler/phase0/run_probe.py +234 -0
- package/scripts/compiler/phase0/wire_vault.py +310 -0
- package/scripts/crew/__init__.py +0 -0
- package/scripts/crew/_task_audit_writer.py +243 -0
- package/scripts/crew/_task_reader.py +389 -0
- package/scripts/crew/archetypes_v11.py +348 -0
- package/scripts/crew/detectors/__init__.py +12 -0
- package/scripts/crew/flow_compiler.py +121 -0
- package/scripts/crew/phase_manager.py +703 -0
- package/scripts/crew/scope_delta.py +264 -0
- package/scripts/crew/specialist_resolver.py +218 -0
- package/scripts/crew/stack_registry.py +189 -0
- package/scripts/data/data_profiler.py +271 -0
- package/scripts/data/ontology_recommender.py +231 -0
- package/scripts/data/schema_validator.py +267 -0
- package/scripts/delivery/drift.py +739 -0
- package/scripts/delivery/telemetry.py +614 -0
- package/scripts/engineering/patch/codegraph_db.py +125 -0
- package/scripts/engineering/patch/generators/__init__.py +56 -0
- package/scripts/engineering/patch/generators/base.py +373 -0
- package/scripts/engineering/patch/generators/csharp_generator.py +494 -0
- package/scripts/engineering/patch/generators/go_generator.py +430 -0
- package/scripts/engineering/patch/generators/java_generator.py +928 -0
- package/scripts/engineering/patch/generators/jsp_generator.py +454 -0
- package/scripts/engineering/patch/generators/kotlin_generator.py +561 -0
- package/scripts/engineering/patch/generators/perl_generator.py +510 -0
- package/scripts/engineering/patch/generators/php_generator.py +644 -0
- package/scripts/engineering/patch/generators/propagation_engine.py +929 -0
- package/scripts/engineering/patch/generators/python_generator.py +487 -0
- package/scripts/engineering/patch/generators/ruby_generator.py +463 -0
- package/scripts/engineering/patch/generators/rust_generator.py +400 -0
- package/scripts/engineering/patch/generators/sql_generator.py +594 -0
- package/scripts/engineering/patch/generators/typescript_generator.py +439 -0
- package/scripts/engineering/patch/patch.py +800 -0
- package/scripts/engineering/patch/safety.py +429 -0
- package/scripts/jam/__init__.py +0 -0
- package/scripts/jam/_bus_consumers.py +271 -0
- package/scripts/jam/agentic_cli_registry.py +703 -0
- package/scripts/jam/consensus.py +737 -0
- package/scripts/jam/detect_clis.py +409 -0
- package/scripts/jam/jam.py +283 -0
- package/scripts/jam/save_transcript.py +171 -0
- package/scripts/loom/__init__.py +22 -0
- package/scripts/loom/cli.py +170 -0
- package/scripts/loom/compose.py +180 -0
- package/scripts/loom/gate.py +120 -0
- package/scripts/loom/manifest.py +140 -0
- package/scripts/loom/resolve.py +59 -0
- package/scripts/persona/__init__.py +0 -0
- package/scripts/persona/registry.py +688 -0
- package/scripts/platform/guard_pipeline.py +1214 -0
- package/scripts/platform/guard_profiles.py +216 -0
- package/scripts/platform/observability/assert_contracts.py +434 -0
- package/scripts/platform/observability/health_probe.py +915 -0
- package/scripts/platform/observability/ops_log_viewer.py +209 -0
- package/scripts/platform/prereq_doctor.py +567 -0
- package/scripts/qe/conditions_manifest.py +260 -0
- package/scripts/qe/content_sanitizer.py +160 -0
- package/scripts/qe/coverage_tracker.py +535 -0
- package/scripts/qe/discover_scenarios.py +243 -0
- package/scripts/qe/evidence_tracker.py +232 -0
- package/scripts/qe/prove.py +196 -0
- package/scripts/qe/registry_lookup.py +80 -0
- package/scripts/qe/registry_store.py +176 -0
- package/scripts/qe/semantic_review.py +1005 -0
- package/scripts/qe/vault_gate.py +382 -0
- package/scripts/qe/verdict_audit.py +175 -0
- package/scripts/qe/verdict_schema.py +335 -0
- package/scripts/reset.py +220 -0
- package/scripts/resolve_path.py +22 -0
- package/scripts/sentinel/invariants.py +402 -0
- package/scripts/sentinel/pre_push.py +73 -0
- package/scripts/setup/__init__.py +1 -0
- package/scripts/setup/detect_state.py +114 -0
- package/scripts/setup/migrate_legacy.py +67 -0
- package/scripts/setup/migrate_v6_projects.py +232 -0
- package/scripts/setup/onboarding.py +114 -0
- package/scripts/smaht/_bus_consumers.py +98 -0
- package/scripts/smaht/adapters/__init__.py +83 -0
- package/scripts/smaht/adapters/brain_adapter.py +254 -0
- package/scripts/smaht/adapters/context7_adapter.py +438 -0
- package/scripts/smaht/adapters/delegation_adapter.py +104 -0
- package/scripts/smaht/adapters/domain_adapter.py +206 -0
- package/scripts/smaht/adapters/events_adapter.py +231 -0
- package/scripts/smaht/adapters/tools_adapter.py +49 -0
- package/scripts/smaht/cheatsheet_store.py +236 -0
- package/scripts/smaht/context_package.py +386 -0
- package/scripts/smaht/knowledge_graph.py +395 -0
- package/scripts/smaht/propose_skills.py +856 -0
- package/scripts/smaht/test_cheatsheet_store.py +428 -0
- package/scripts/statusline.py +151 -0
- package/scripts/where_am_i.py +236 -0
- package/skills/agentic/agentic-patterns/SKILL.md +91 -0
- package/skills/agentic/agentic-patterns/refs/anti-patterns-design.md +283 -0
- package/skills/agentic/agentic-patterns/refs/anti-patterns-operational.md +216 -0
- package/skills/agentic/agentic-patterns/refs/pattern-catalog.md +329 -0
- package/skills/agentic/context-engineering/SKILL.md +142 -0
- package/skills/agentic/context-engineering/refs/caching-and-optimization.md +251 -0
- package/skills/agentic/context-engineering/refs/compression-techniques.md +171 -0
- package/skills/agentic/context-engineering/refs/cost-calculation-budget.md +250 -0
- package/skills/agentic/context-engineering/refs/cost-optimization-reporting.md +300 -0
- package/skills/agentic/context-engineering/refs/selective-loading.md +179 -0
- package/skills/agentic/frameworks/SKILL.md +191 -0
- package/skills/agentic/frameworks/refs/framework-profiles-1.md +209 -0
- package/skills/agentic/frameworks/refs/framework-profiles-2.md +214 -0
- package/skills/agentic/frameworks/refs/migration-patterns-paths.md +267 -0
- package/skills/agentic/frameworks/refs/migration-patterns-testing.md +208 -0
- package/skills/agentic/refs/audit.md +134 -0
- package/skills/agentic/refs/design.md +137 -0
- package/skills/agentic/refs/frameworks.md +102 -0
- package/skills/agentic/refs/review.md +160 -0
- package/skills/agentic/review-methodology/SKILL.md +186 -0
- package/skills/agentic/review-methodology/refs/deliverable-templates.md +246 -0
- package/skills/agentic/review-methodology/refs/issue-taxonomy-quality-testing.md +277 -0
- package/skills/agentic/review-methodology/refs/issue-taxonomy-reliability-safety.md +253 -0
- package/skills/agentic/trust-and-safety/SKILL.md +177 -0
- package/skills/agentic/trust-and-safety/refs/guardrails-actions.md +246 -0
- package/skills/agentic/trust-and-safety/refs/guardrails-input-output.md +238 -0
- package/skills/agentic/trust-and-safety/refs/guardrails-resources.md +209 -0
- package/skills/agentic/trust-and-safety/refs/safety-checklist-advanced.md +209 -0
- package/skills/agentic/trust-and-safety/refs/safety-checklist-core.md +215 -0
- package/skills/archetype/SKILL.md +104 -0
- package/skills/archetype/refs/build.md +142 -0
- package/skills/archetype/refs/decide.md +117 -0
- package/skills/archetype/refs/explore.md +66 -0
- package/skills/archetype/refs/incident.md +149 -0
- package/skills/archetype/refs/migrate.md +170 -0
- package/skills/archetype/refs/modernize.md +187 -0
- package/skills/archetype/refs/review.md +145 -0
- package/skills/archetype/refs/ship.md +117 -0
- package/skills/archetype/refs/specify.md +108 -0
- package/skills/archetype/refs/triage.md +62 -0
- package/skills/classify/SKILL.md +157 -0
- package/skills/data/analysis/SKILL.md +125 -0
- package/skills/data/analysis/refs/templates.md +170 -0
- package/skills/data/data/SKILL.md +118 -0
- package/skills/data/data/refs/examples.md +235 -0
- package/skills/data/ml/SKILL.md +125 -0
- package/skills/data/ml/refs/templates.md +172 -0
- package/skills/data/pipeline/SKILL.md +136 -0
- package/skills/data/pipeline/refs/templates.md +175 -0
- package/skills/data/refs/analyze.md +123 -0
- package/skills/data/refs/data.md +95 -0
- package/skills/data/refs/ml.md +118 -0
- package/skills/data/refs/pipeline.md +92 -0
- package/skills/deliberate/SKILL.md +125 -0
- package/skills/deliberate/refs/architecture-lens.md +37 -0
- package/skills/deliberate/refs/assumptions-lens.md +43 -0
- package/skills/deliberate/refs/code-lens.md +38 -0
- package/skills/deliberate/refs/content-lens.md +37 -0
- package/skills/deliberate/refs/data-lens.md +43 -0
- package/skills/deliberate/refs/design-lens.md +37 -0
- package/skills/deliberate/refs/opportunity-patterns.md +107 -0
- package/skills/deliberate/refs/ops-lens.md +43 -0
- package/skills/deliberate/refs/product-lens.md +46 -0
- package/skills/deliberate/refs/rethink-framework.md +77 -0
- package/skills/deliberate/refs/security-lens.md +47 -0
- package/skills/deliberate/refs/testing-lens.md +45 -0
- package/skills/deliberate/refs/timing-lens.md +42 -0
- package/skills/engineering/architecture/SKILL.md +177 -0
- package/skills/engineering/architecture/refs/adr-template.md +268 -0
- package/skills/engineering/architecture/refs/architecture-template-deployment.md +176 -0
- package/skills/engineering/architecture/refs/architecture-template-design.md +300 -0
- package/skills/engineering/architecture/refs/examples-ecommerce-analytics.md +299 -0
- package/skills/engineering/architecture/refs/examples-saas-trading.md +291 -0
- package/skills/engineering/architecture/refs/patterns-advanced.md +238 -0
- package/skills/engineering/architecture/refs/patterns-structural.md +303 -0
- package/skills/engineering/backend/SKILL.md +102 -0
- package/skills/engineering/backend/refs/checklists.md +146 -0
- package/skills/engineering/backend/refs/patterns.md +181 -0
- package/skills/engineering/debugging/SKILL.md +99 -0
- package/skills/engineering/debugging/refs/patterns.md +248 -0
- package/skills/engineering/debugging/refs/process.md +203 -0
- package/skills/engineering/docs/SKILL.md +97 -0
- package/skills/engineering/engineering/SKILL.md +88 -0
- package/skills/engineering/engineering/refs/checklists.md +91 -0
- package/skills/engineering/engineering/refs/templates.md +71 -0
- package/skills/engineering/frontend/SKILL.md +92 -0
- package/skills/engineering/frontend/refs/checklists.md +96 -0
- package/skills/engineering/frontend/refs/patterns.md +167 -0
- package/skills/engineering/integration/SKILL.md +183 -0
- package/skills/engineering/integration/refs/error-handling-best-practices.md +139 -0
- package/skills/engineering/integration/refs/error-handling-error-classes-typescript.md +212 -0
- package/skills/engineering/integration/refs/error-handling-error-response-format.md +301 -0
- package/skills/engineering/integration/refs/error-handling-retry-strategies.md +190 -0
- package/skills/engineering/integration/refs/event-schemas-best-practices.md +225 -0
- package/skills/engineering/integration/refs/event-schemas-event-naming-conventions.md +303 -0
- package/skills/engineering/integration/refs/event-schemas-event-structure.md +288 -0
- package/skills/engineering/integration/refs/graphql-best-practices.md +138 -0
- package/skills/engineering/integration/refs/graphql-error-handling.md +198 -0
- package/skills/engineering/integration/refs/graphql-graphql-basics.md +197 -0
- package/skills/engineering/integration/refs/graphql-query-examples.md +226 -0
- package/skills/engineering/integration/refs/graphql-schema-design-patterns.md +280 -0
- package/skills/engineering/integration/refs/grpc-grpc-overview.md +246 -0
- package/skills/engineering/integration/refs/grpc-implementation-examples.md +269 -0
- package/skills/engineering/integration/refs/grpc-metadata-headers.md +304 -0
- package/skills/engineering/integration/refs/grpc-testing.md +49 -0
- package/skills/engineering/integration/refs/openapi-template.yaml +682 -0
- package/skills/engineering/integration/refs/resilience-best-practices.md +109 -0
- package/skills/engineering/integration/refs/resilience-circuit-breaker-pattern.md +302 -0
- package/skills/engineering/integration/refs/resilience-rate-limiting.md +245 -0
- package/skills/engineering/integration/refs/resilience-timeout-pattern.md +212 -0
- package/skills/engineering/integration/refs/rest-api-fundamentals.md +299 -0
- package/skills/engineering/integration/refs/rest-api-responses-security.md +302 -0
- package/skills/engineering/integration/refs/versioning-breaking-changes.md +237 -0
- package/skills/engineering/integration/refs/versioning-migration-strategies.md +257 -0
- package/skills/engineering/integration/refs/versioning-versioning-strategies.md +296 -0
- package/skills/engineering/large-scale-migration/SKILL.md +65 -0
- package/skills/engineering/patch/SKILL.md +184 -0
- package/skills/engineering/refs/arch.md +126 -0
- package/skills/engineering/refs/debug.md +142 -0
- package/skills/engineering/refs/docs.md +190 -0
- package/skills/engineering/refs/plan.md +109 -0
- package/skills/engineering/refs/review.md +138 -0
- package/skills/engineering/system-design/SKILL.md +154 -0
- package/skills/engineering/system-design/refs/anti-patterns-big-ball-of-mud.md +254 -0
- package/skills/engineering/system-design/refs/anti-patterns-circular-dependencies.md +241 -0
- package/skills/engineering/system-design/refs/anti-patterns-feature-envy.md +168 -0
- package/skills/engineering/system-design/refs/anti-patterns-god-object.md +247 -0
- package/skills/engineering/system-design/refs/component-template-lifecycle.md +210 -0
- package/skills/engineering/system-design/refs/component-template-maintenance.md +219 -0
- package/skills/engineering/system-design/refs/component-template-structure.md +276 -0
- package/skills/engineering/system-design/refs/dependencies-best-practices.md +260 -0
- package/skills/engineering/system-design/refs/dependencies-dependency-principles.md +295 -0
- package/skills/engineering/system-design/refs/dependencies-dependency-tracking.md +261 -0
- package/skills/engineering/system-design/refs/interface-template-lifecycle.md +211 -0
- package/skills/engineering/system-design/refs/interface-template-maintenance.md +212 -0
- package/skills/engineering/system-design/refs/interface-template-structure.md +269 -0
- package/skills/engineering/system-design/refs/patterns-dependency-injection.md +151 -0
- package/skills/engineering/system-design/refs/patterns-facade-pattern.md +257 -0
- package/skills/engineering/system-design/refs/patterns-layered-pattern.md +204 -0
- package/skills/engineering/system-design/refs/patterns-plugin-architecture.md +229 -0
- package/skills/engineering/unit-test-quality/SKILL.md +194 -0
- package/skills/ground/SKILL.md +130 -0
- package/skills/integration-discovery/SKILL.md +168 -0
- package/skills/integration-discovery/refs/capabilities.md +282 -0
- package/skills/integration-discovery/refs/cli-detection.md +295 -0
- package/skills/integration-discovery/refs/discovery-sources.md +233 -0
- package/skills/integration-discovery/refs/task-patterns.md +206 -0
- package/skills/jam/SKILL.md +45 -0
- package/skills/jam/refs/facilitation-patterns.md +125 -0
- package/skills/jam/refs/quick.md +64 -0
- package/skills/jam/refs/synthesis-patterns.md +114 -0
- package/skills/multi-model/SKILL.md +168 -0
- package/skills/multi-model/refs/aichat.md +119 -0
- package/skills/multi-model/refs/aider.md +100 -0
- package/skills/multi-model/refs/auditability.md +238 -0
- package/skills/multi-model/refs/codex.md +169 -0
- package/skills/multi-model/refs/context.md +306 -0
- package/skills/multi-model/refs/copilot.md +161 -0
- package/skills/multi-model/refs/examples.md +224 -0
- package/skills/multi-model/refs/gemini.md +185 -0
- package/skills/multi-model/refs/goose.md +112 -0
- package/skills/multi-model/refs/llm.md +124 -0
- package/skills/multi-model/refs/opencode.md +196 -0
- package/skills/multi-model/refs/orchestration.md +188 -0
- package/skills/multi-model/refs/pi.md +208 -0
- package/skills/persona/SKILL.md +144 -0
- package/skills/persona/refs/define.md +133 -0
- package/skills/platform/actions/refs/actions.md +114 -0
- package/skills/platform/audit/SKILL.md +174 -0
- package/skills/platform/audit/refs/audit.md +145 -0
- package/skills/platform/audit/refs/checklists-evidence-operations.md +144 -0
- package/skills/platform/audit/refs/checklists-gdpr-pci-evidence.md +213 -0
- package/skills/platform/audit/refs/checklists-soc2-hipaa.md +120 -0
- package/skills/platform/audit/refs/frameworks-gdpr-pci.md +225 -0
- package/skills/platform/audit/refs/frameworks-soc2-hipaa.md +228 -0
- package/skills/platform/compliance/SKILL.md +169 -0
- package/skills/platform/compliance/refs/checklists.md +303 -0
- package/skills/platform/compliance/refs/compliance.md +117 -0
- package/skills/platform/compliance/refs/frameworks.md +282 -0
- package/skills/platform/errors/SKILL.md +183 -0
- package/skills/platform/errors/refs/patterns.md +271 -0
- package/skills/platform/errors/refs/severity.md +264 -0
- package/skills/platform/gate-benchmark-rebaseline/SKILL.md +108 -0
- package/skills/platform/gh/refs/gh.md +105 -0
- package/skills/platform/gh-cli/SKILL.md +120 -0
- package/skills/platform/gh-cli/refs/automation.md +63 -0
- package/skills/platform/gh-cli/refs/gh-ops.md +103 -0
- package/skills/platform/gh-cli/refs/patterns.md +132 -0
- package/skills/platform/gh-cli/scripts/gh_ops.py +454 -0
- package/skills/platform/github-actions/SKILL.md +159 -0
- package/skills/platform/github-actions/refs/security.md +150 -0
- package/skills/platform/github-actions/refs/templates.md +230 -0
- package/skills/platform/github-actions/refs/troubleshooting.md +174 -0
- package/skills/platform/github-actions/scripts/workflow_gen.py +215 -0
- package/skills/platform/gitlab-ci/SKILL.md +140 -0
- package/skills/platform/gitlab-ci/refs/templates.md +223 -0
- package/skills/platform/gitlab-ci/refs/troubleshooting.md +213 -0
- package/skills/platform/glab-cli/SKILL.md +133 -0
- package/skills/platform/glab-cli/refs/ci-debugging.md +95 -0
- package/skills/platform/glab-cli/refs/glab-ops.md +78 -0
- package/skills/platform/glab-cli/refs/patterns.md +131 -0
- package/skills/platform/glab-cli/scripts/glab_ops.py +313 -0
- package/skills/platform/health/SKILL.md +177 -0
- package/skills/platform/health/refs/health.md +72 -0
- package/skills/platform/health/refs/sources.md +302 -0
- package/skills/platform/incident/refs/incident.md +136 -0
- package/skills/platform/infra/refs/infra.md +104 -0
- package/skills/platform/observability/SKILL.md +128 -0
- package/skills/platform/observability/refs/toolchain-discovery.md +243 -0
- package/skills/platform/prereq-doctor/SKILL.md +57 -0
- package/skills/platform/prereq-doctor/refs/tool-registry.md +58 -0
- package/skills/platform/traces/refs/traces.md +101 -0
- package/skills/product/acceptance-criteria/SKILL.md +193 -0
- package/skills/product/acceptance-criteria/refs/ac-anti-patterns.md +291 -0
- package/skills/product/acceptance-criteria/refs/ac-examples.md +277 -0
- package/skills/product/accessibility/SKILL.md +197 -0
- package/skills/product/accessibility/refs/aria-patterns-basics.md +250 -0
- package/skills/product/accessibility/refs/aria-patterns-dynamic.md +187 -0
- package/skills/product/accessibility/refs/aria-patterns-interactive.md +246 -0
- package/skills/product/accessibility/refs/audit-report-findings.md +248 -0
- package/skills/product/accessibility/refs/audit-report-results.md +276 -0
- package/skills/product/accessibility/refs/common-violations-html-css.md +270 -0
- package/skills/product/accessibility/refs/common-violations-interactive.md +303 -0
- package/skills/product/accessibility/refs/keyboard-testing-basics.md +222 -0
- package/skills/product/accessibility/refs/keyboard-testing-patterns.md +173 -0
- package/skills/product/accessibility/refs/screen-reader-testing-advanced.md +294 -0
- package/skills/product/accessibility/refs/screen-reader-testing-commands.md +255 -0
- package/skills/product/accessibility/refs/wcag-checklist.md +262 -0
- package/skills/product/analyze/SKILL.md +164 -0
- package/skills/product/analyze/refs/algorithms.md +238 -0
- package/skills/product/analyze/refs/sentiment-patterns.md +180 -0
- package/skills/product/imagery/SKILL.md +97 -0
- package/skills/product/imagery/alter/SKILL.md +105 -0
- package/skills/product/imagery/alter/refs/editing-reference.md +146 -0
- package/skills/product/imagery/create/SKILL.md +109 -0
- package/skills/product/imagery/create/refs/prompt-engineering.md +112 -0
- package/skills/product/imagery/create/refs/provider-reference.md +219 -0
- package/skills/product/imagery/review/SKILL.md +101 -0
- package/skills/product/imagery/review/refs/analysis-lenses.md +136 -0
- package/skills/product/imagery/review/refs/quality-gates.md +153 -0
- package/skills/product/imagery/scripts/analyze.sh +23 -0
- package/skills/product/imagery/scripts/edit.sh +14 -0
- package/skills/product/imagery/scripts/generate.sh +13 -0
- package/skills/product/imagery/scripts/provider.py +787 -0
- package/skills/product/listen/SKILL.md +175 -0
- package/skills/product/listen/refs/channels.md +220 -0
- package/skills/product/mockup/SKILL.md +106 -0
- package/skills/product/mockup/refs/templates.md +95 -0
- package/skills/product/refs/a11y.md +109 -0
- package/skills/product/refs/acceptance.md +79 -0
- package/skills/product/refs/align.md +67 -0
- package/skills/product/refs/analyze.md +77 -0
- package/skills/product/refs/elicit.md +67 -0
- package/skills/product/refs/listen.md +58 -0
- package/skills/product/refs/mockup.md +77 -0
- package/skills/product/refs/screenshot.md +59 -0
- package/skills/product/refs/strategy.md +77 -0
- package/skills/product/refs/synthesize.md +54 -0
- package/skills/product/refs/ux-review.md +68 -0
- package/skills/product/refs/ux.md +101 -0
- package/skills/product/requirements-analysis/SKILL.md +136 -0
- package/skills/product/requirements-analysis/refs/requirements-example-auth.md +264 -0
- package/skills/product/requirements-analysis/refs/requirements-example-export-integration.md +88 -0
- package/skills/product/requirements-analysis/refs/requirements-output-format-template.md +247 -0
- package/skills/product/requirements-analysis/refs/user-story-guide.md +296 -0
- package/skills/product/requirements-graph/SKILL.md +155 -0
- package/skills/product/requirements-graph/refs/examples.md +223 -0
- package/skills/product/requirements-graph/refs/schema.md +162 -0
- package/skills/product/requirements-migrate/SKILL.md +90 -0
- package/skills/product/requirements-navigate/SKILL.md +141 -0
- package/skills/product/requirements-navigate/refs/meta-templates.md +141 -0
- package/skills/product/screenshot/SKILL.md +147 -0
- package/skills/product/strategy/SKILL.md +198 -0
- package/skills/product/strategy/refs/frameworks.md +295 -0
- package/skills/product/strategy/refs/templates-competitive-market.md +299 -0
- package/skills/product/strategy/refs/templates-roi-value.md +207 -0
- package/skills/product/synthesize/SKILL.md +116 -0
- package/skills/product/synthesize/refs/journey-mapping.md +212 -0
- package/skills/product/synthesize/refs/prioritization.md +193 -0
- package/skills/product/ux-review/SKILL.md +164 -0
- package/skills/product/visual-direction/SKILL.md +137 -0
- package/skills/product/visual-review/SKILL.md +131 -0
- package/skills/runtime-exec/SKILL.md +138 -0
- package/skills/search/codebase-narrator/SKILL.md +131 -0
- package/skills/search/codebase-narrator/refs/output-template.md +100 -0
- package/skills/smaht/SKILL.md +72 -0
- package/skills/smaht/discovery/SKILL.md +65 -0
- package/skills/smaht/intent/SKILL.md +89 -0
- package/skills/smaht/propose-skills/SKILL.md +142 -0
- package/skills/smaht/refs/state.md +76 -0
- package/skills/swarm/SKILL.md +132 -0
- package/skills/swarm/refs/fan-out.md +104 -0
- package/skills/swarm/refs/independent-verification.md +86 -0
- package/skills/swarm/refs/receipts-and-evidence.md +69 -0
- package/skills/swarm/refs/recon-synthesis.md +87 -0
- package/skills/swarm/refs/ship-discipline.md +90 -0
- package/skills/wickedizer/SKILL.md +147 -0
- package/skills/wickedizer/refs/artifact-types.md +238 -0
- package/skills/wickedizer/refs/complexity.md +278 -0
- package/skills/wickedizer/refs/de-ai-pass.md +140 -0
- package/skills/wickedizer/refs/failure-modes.md +249 -0
- package/skills/wickedizer/refs/patterns.md +282 -0
- package/skills/wickedizer/refs/review.md +221 -0
- package/skills/wickedizer/refs/structure.md +282 -0
- package/skills/wickedizer/refs/voice-profile.md +125 -0
- package/skills/workflow/SKILL.md +132 -0
- package/skills/workflow/refs/archetype-adjustments.md +205 -0
- package/skills/workflow/refs/evidence.md +58 -0
- package/skills/workflow/refs/integration.md +130 -0
- package/skills/workflow/refs/risk-dimension-signals.md +260 -0
- package/skills/workflow/refs/scoring-rubric.md +49 -0
- package/skills/workflow/refs/signal-keywords.md +176 -0
- package/skills/workflow/refs/specialist-routing-rules.md +159 -0
- package/skills/worktrees/SKILL.md +87 -0
- package/skills/worktrees/refs/recipes.md +96 -0
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wicked-garden-platform-security-engineer
|
|
3
|
+
context: fork
|
|
4
|
+
subagent_type: wicked-garden:platform:security-engineer
|
|
5
|
+
description: "Security scanning and vulnerability assessment from DevSecOps perspective. Use when: security review,..."
|
|
6
|
+
model: sonnet
|
|
7
|
+
effort: medium
|
|
8
|
+
max-turns: 10
|
|
9
|
+
color: red
|
|
10
|
+
allowed-tools: Read, Grep, Glob, Bash
|
|
11
|
+
tool-capabilities:
|
|
12
|
+
- security-scanning
|
|
13
|
+
- version-control
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Security Engineer
|
|
17
|
+
|
|
18
|
+
You perform security scanning and vulnerability assessment for code and infrastructure.
|
|
19
|
+
|
|
20
|
+
## First Strategy: Use wicked-* Ecosystem
|
|
21
|
+
|
|
22
|
+
Before manual analysis, leverage available tools:
|
|
23
|
+
|
|
24
|
+
- **Search**: Use wicked-garden:search to find security patterns
|
|
25
|
+
- **Memory**: Use wicked-brain:memory to recall past vulnerabilities
|
|
26
|
+
- **Tasks**: Use TaskCreate/TaskUpdate with `metadata={event_type, chain_id, source_agent, phase}` to track security findings (see scripts/_event_schema.py).
|
|
27
|
+
|
|
28
|
+
## Your Focus
|
|
29
|
+
|
|
30
|
+
### Code Security
|
|
31
|
+
- Injection vulnerabilities (SQL, XSS, command, path traversal)
|
|
32
|
+
- Authentication/authorization issues
|
|
33
|
+
- Secrets exposure and credential management
|
|
34
|
+
- Input validation and sanitization
|
|
35
|
+
- Secure dependencies and supply chain
|
|
36
|
+
|
|
37
|
+
### Infrastructure Security
|
|
38
|
+
- Container security (Docker, Kubernetes)
|
|
39
|
+
- Cloud IAM and least privilege
|
|
40
|
+
- Network security and exposure
|
|
41
|
+
- Secrets management (vault, KMS, environment variables)
|
|
42
|
+
|
|
43
|
+
### CI/CD Security
|
|
44
|
+
- Pipeline security (GitHub Actions, GitLab CI)
|
|
45
|
+
- Artifact integrity and signing
|
|
46
|
+
- Secure deployment practices
|
|
47
|
+
- OIDC and keyless authentication
|
|
48
|
+
|
|
49
|
+
## NOT Your Focus
|
|
50
|
+
|
|
51
|
+
- Code quality (that's DevOps Engineer)
|
|
52
|
+
- Performance optimization (that's Infrastructure Engineer)
|
|
53
|
+
- Release process (that's Release Engineer)
|
|
54
|
+
|
|
55
|
+
## Security Scanning Process
|
|
56
|
+
|
|
57
|
+
### 1. Search for Known Patterns
|
|
58
|
+
|
|
59
|
+
Use wicked-garden:search to find potential issues:
|
|
60
|
+
```
|
|
61
|
+
wicked-brain:search "password|secret|api_key|token" --path {target}
|
|
62
|
+
wicked-brain:search "eval\(|exec\(|system\(" --path {target}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Or manually:
|
|
66
|
+
```bash
|
|
67
|
+
grep -r "password\|secret\|api_key" {target_dir} --include="*.js" --include="*.py"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### 2. Review Dependencies
|
|
71
|
+
|
|
72
|
+
Check for vulnerable dependencies:
|
|
73
|
+
```bash
|
|
74
|
+
# Node.js
|
|
75
|
+
npm audit --audit-level=moderate
|
|
76
|
+
|
|
77
|
+
# Python
|
|
78
|
+
pip-audit || safety check
|
|
79
|
+
|
|
80
|
+
# Go
|
|
81
|
+
go list -json -m all | nancy sleuth
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### 3. OWASP Top 10 Checklist
|
|
85
|
+
|
|
86
|
+
Scan against OWASP Top 10 (2021):
|
|
87
|
+
|
|
88
|
+
1. **A01: Broken Access Control**
|
|
89
|
+
- [ ] Authorization checks on all routes
|
|
90
|
+
- [ ] No direct object reference without validation
|
|
91
|
+
- [ ] Proper session management
|
|
92
|
+
|
|
93
|
+
2. **A02: Cryptographic Failures**
|
|
94
|
+
- [ ] No hardcoded secrets
|
|
95
|
+
- [ ] Secure transport (HTTPS/TLS)
|
|
96
|
+
- [ ] Proper encryption at rest
|
|
97
|
+
|
|
98
|
+
3. **A03: Injection**
|
|
99
|
+
- [ ] SQL injection (parameterized queries)
|
|
100
|
+
- [ ] XSS (output encoding)
|
|
101
|
+
- [ ] Command injection (input validation)
|
|
102
|
+
- [ ] Path traversal (path sanitization)
|
|
103
|
+
|
|
104
|
+
4. **A04: Insecure Design**
|
|
105
|
+
- [ ] Threat modeling performed
|
|
106
|
+
- [ ] Secure defaults
|
|
107
|
+
- [ ] Defense in depth
|
|
108
|
+
|
|
109
|
+
5. **A05: Security Misconfiguration**
|
|
110
|
+
- [ ] No debug mode in production
|
|
111
|
+
- [ ] Secure headers configured
|
|
112
|
+
- [ ] Least privilege permissions
|
|
113
|
+
|
|
114
|
+
6. **A06: Vulnerable Components**
|
|
115
|
+
- [ ] Dependencies up to date
|
|
116
|
+
- [ ] No known CVEs in dependencies
|
|
117
|
+
|
|
118
|
+
7. **A07: Auth Failures**
|
|
119
|
+
- [ ] Proper password policies
|
|
120
|
+
- [ ] Multi-factor authentication available
|
|
121
|
+
- [ ] Session timeout configured
|
|
122
|
+
|
|
123
|
+
8. **A08: Data Integrity**
|
|
124
|
+
- [ ] Software/data integrity checks
|
|
125
|
+
- [ ] Artifact signing
|
|
126
|
+
- [ ] CI/CD pipeline security
|
|
127
|
+
|
|
128
|
+
9. **A09: Logging Failures**
|
|
129
|
+
- [ ] Security events logged
|
|
130
|
+
- [ ] Logs don't contain secrets
|
|
131
|
+
- [ ] Log monitoring configured
|
|
132
|
+
|
|
133
|
+
10. **A10: SSRF**
|
|
134
|
+
- [ ] URL validation
|
|
135
|
+
- [ ] Network segmentation
|
|
136
|
+
- [ ] Allowlist approach
|
|
137
|
+
|
|
138
|
+
### 4. Secrets Detection
|
|
139
|
+
|
|
140
|
+
Check for exposed secrets:
|
|
141
|
+
```bash
|
|
142
|
+
# Look for common secret patterns
|
|
143
|
+
grep -r "AKIA[0-9A-Z]{16}" {target} # AWS keys
|
|
144
|
+
grep -r "ghp_[a-zA-Z0-9]{36}" {target} # GitHub tokens
|
|
145
|
+
grep -r "-----BEGIN.*PRIVATE KEY-----" {target} # Private keys
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### 5. CI/CD Pipeline Review
|
|
149
|
+
|
|
150
|
+
For GitHub Actions workflows:
|
|
151
|
+
```yaml
|
|
152
|
+
# Check for:
|
|
153
|
+
- Explicit permissions (not write-all)
|
|
154
|
+
- Pinned action versions
|
|
155
|
+
- No direct input interpolation
|
|
156
|
+
- Secrets handling via environment
|
|
157
|
+
- OIDC instead of long-lived credentials
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
For GitLab CI:
|
|
161
|
+
```yaml
|
|
162
|
+
# Check for:
|
|
163
|
+
- Protected variables for secrets
|
|
164
|
+
- Minimal job permissions
|
|
165
|
+
- Container scanning enabled
|
|
166
|
+
- Dependency scanning enabled
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### 6. Update Task
|
|
170
|
+
|
|
171
|
+
Track findings via task tools:
|
|
172
|
+
```
|
|
173
|
+
Update the current task with security scan results:
|
|
174
|
+
|
|
175
|
+
TaskUpdate(
|
|
176
|
+
taskId="{task_id}",
|
|
177
|
+
description="{original description}
|
|
178
|
+
|
|
179
|
+
## Security Scan Results
|
|
180
|
+
|
|
181
|
+
**Severity Breakdown**:
|
|
182
|
+
- CRITICAL: {count}
|
|
183
|
+
- HIGH: {count}
|
|
184
|
+
- MEDIUM: {count}
|
|
185
|
+
- LOW: {count}
|
|
186
|
+
|
|
187
|
+
**Top Issues**:
|
|
188
|
+
1. {issue} - {severity} - {location}
|
|
189
|
+
|
|
190
|
+
**Compliance**: OWASP {pass/fail}
|
|
191
|
+
**Recommendation**: {action needed}"
|
|
192
|
+
)
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
## Output Format
|
|
196
|
+
|
|
197
|
+
```markdown
|
|
198
|
+
## Security Scan Results
|
|
199
|
+
|
|
200
|
+
**Scan Date**: {date}
|
|
201
|
+
**Target**: {path/component}
|
|
202
|
+
**Compliance**: OWASP Top 10 - {PASS/FAIL}
|
|
203
|
+
|
|
204
|
+
### Critical Findings
|
|
205
|
+
|
|
206
|
+
| Severity | Type | CWE | Location | Description |
|
|
207
|
+
|----------|------|-----|----------|-------------|
|
|
208
|
+
| CRITICAL | SQL Injection | CWE-89 | `file:line` | Unsanitized user input in query |
|
|
209
|
+
| HIGH | Secrets Exposure | CWE-798 | `file:line` | Hardcoded API key in source |
|
|
210
|
+
|
|
211
|
+
### Secure Patterns Observed
|
|
212
|
+
|
|
213
|
+
- Proper parameterized queries in user service
|
|
214
|
+
- OIDC authentication for cloud deployments
|
|
215
|
+
- Secrets managed via environment variables
|
|
216
|
+
|
|
217
|
+
### Recommendations
|
|
218
|
+
|
|
219
|
+
1. **CRITICAL: Fix SQL Injection**
|
|
220
|
+
- Location: `src/db/users.js:42`
|
|
221
|
+
- Current: `SELECT * FROM users WHERE id = ${userId}`
|
|
222
|
+
- Fix: Use parameterized queries: `SELECT * FROM users WHERE id = ?`
|
|
223
|
+
- Impact: Immediate exploitation risk
|
|
224
|
+
|
|
225
|
+
2. **HIGH: Remove Hardcoded Secret**
|
|
226
|
+
- Location: `.env.example:5`
|
|
227
|
+
- Current: API key exposed in example file
|
|
228
|
+
- Fix: Use placeholder value, document in README
|
|
229
|
+
- Impact: Credential compromise
|
|
230
|
+
|
|
231
|
+
### Additional Hardening
|
|
232
|
+
|
|
233
|
+
- Enable dependabot for automated dependency updates
|
|
234
|
+
- Add SAST scanning to CI/CD pipeline
|
|
235
|
+
- Implement security headers (CSP, HSTS)
|
|
236
|
+
- Consider adding SCA (Software Composition Analysis)
|
|
237
|
+
|
|
238
|
+
### Dependency Vulnerabilities
|
|
239
|
+
|
|
240
|
+
{npm audit or pip-audit output summary}
|
|
241
|
+
|
|
242
|
+
### Next Steps
|
|
243
|
+
|
|
244
|
+
1. Address CRITICAL and HIGH findings before deployment
|
|
245
|
+
2. Schedule review of MEDIUM findings
|
|
246
|
+
3. Add automated security scanning to pipeline
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
## Severity Guidelines
|
|
250
|
+
|
|
251
|
+
- **CRITICAL**: Actively exploitable, immediate fix required
|
|
252
|
+
- **HIGH**: Security risk, fix before deployment
|
|
253
|
+
- **MEDIUM**: Defensive improvement needed
|
|
254
|
+
- **LOW**: Hardening suggestion, address in backlog
|
|
255
|
+
|
|
256
|
+
## Common CWE References
|
|
257
|
+
|
|
258
|
+
| CWE | Name | Common Fix |
|
|
259
|
+
|-----|------|------------|
|
|
260
|
+
| CWE-89 | SQL Injection | Parameterized queries |
|
|
261
|
+
| CWE-79 | XSS | Output encoding |
|
|
262
|
+
| CWE-78 | OS Command Injection | Input validation, avoid shell |
|
|
263
|
+
| CWE-22 | Path Traversal | Path sanitization |
|
|
264
|
+
| CWE-287 | Improper Authentication | Strong auth mechanisms |
|
|
265
|
+
| CWE-306 | Missing Authentication | Add auth checks |
|
|
266
|
+
| CWE-798 | Hardcoded Credentials | Environment variables |
|
|
267
|
+
| CWE-200 | Information Exposure | Proper error handling |
|
|
268
|
+
| CWE-352 | CSRF | CSRF tokens |
|
|
269
|
+
| CWE-918 | SSRF | URL validation |
|
|
270
|
+
|
|
271
|
+
## Integration with DevSecOps Skills
|
|
272
|
+
|
|
273
|
+
- Use `/wicked-garden:platform:github-actions` for secure pipeline design
|
|
274
|
+
- Use `/wicked-garden:platform:gh-cli` for security advisory management
|
|
275
|
+
- Use `/wicked-garden:platform:gitlab-ci` for GitLab security features
|
|
276
|
+
|
|
277
|
+
## Bus Events
|
|
278
|
+
|
|
279
|
+
**After writing each security finding** (one emit per finding), emit the event for cross-domain visibility:
|
|
280
|
+
|
|
281
|
+
```bash
|
|
282
|
+
sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/_bus_emit.py" wicked.security.finding_raised '{"severity":"{critical|high|medium|low}","category":"{owasp_top10|secrets|auth|dependency|config}","source_agent":"wicked-garden:platform:security-engineer","chain_id":"{chain_id}"}' 2>/dev/null || true
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
`chain_id` comes from session state — use `SessionState.active_chain_id` if available, else empty string. Substitute at emit time.
|
|
286
|
+
|
|
287
|
+
**Payload rules**: Tier 1 + Tier 2 only — IDs, counts, severities, enums. NEVER include finding text, remediation details, source code, CWE descriptions, file paths, or PII. Fail-open: the `|| true` keeps the agent running when the bus is unavailable.
|
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wicked-garden-product-a11y-expert
|
|
3
|
+
context: fork
|
|
4
|
+
subagent_type: wicked-garden:product:a11y-expert
|
|
5
|
+
description: "Audit accessibility compliance - WCAG guidelines, keyboard navigation, screen... Use when: accessibility, WCAG,..."
|
|
6
|
+
model: sonnet
|
|
7
|
+
effort: medium
|
|
8
|
+
max-turns: 10
|
|
9
|
+
color: green
|
|
10
|
+
allowed-tools: Read, Grep, Glob, Bash
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Accessibility Expert
|
|
14
|
+
|
|
15
|
+
You audit accessibility compliance and champion inclusive design. WCAG standards, keyboard navigation, screen readers, semantic HTML.
|
|
16
|
+
|
|
17
|
+
## First Strategy: Use wicked-* Ecosystem
|
|
18
|
+
|
|
19
|
+
Before doing work manually, leverage existing tools:
|
|
20
|
+
|
|
21
|
+
- **Browse**: Use wicked-browse for automated a11y testing (if available)
|
|
22
|
+
- **Search**: Use wicked-garden:search to find accessibility patterns
|
|
23
|
+
- **Memory**: Use wicked-brain:memory to recall a11y standards and decisions
|
|
24
|
+
- **Tracking**: Use TaskCreate/TaskUpdate with `metadata={event_type, chain_id, source_agent, phase}` to log accessibility issues (see scripts/_event_schema.py).
|
|
25
|
+
|
|
26
|
+
## WCAG 2.1 Level AA Compliance
|
|
27
|
+
|
|
28
|
+
Focus on the Four Principles: **POUR**
|
|
29
|
+
|
|
30
|
+
### 1. Perceivable
|
|
31
|
+
|
|
32
|
+
**Information must be presentable to users in ways they can perceive**
|
|
33
|
+
|
|
34
|
+
**Visual:**
|
|
35
|
+
- Color contrast (4.5:1 normal text, 3:1 large text)
|
|
36
|
+
- Text alternatives for images (alt text)
|
|
37
|
+
- Captions for videos
|
|
38
|
+
- Audio descriptions
|
|
39
|
+
|
|
40
|
+
**Check for:**
|
|
41
|
+
- `alt` attributes on images
|
|
42
|
+
- `aria-label` or visible text for icons
|
|
43
|
+
- Sufficient color contrast ratios
|
|
44
|
+
- No information conveyed by color alone
|
|
45
|
+
- Text resizing up to 200%
|
|
46
|
+
|
|
47
|
+
### 2. Operable
|
|
48
|
+
|
|
49
|
+
**Interface components must be operable**
|
|
50
|
+
|
|
51
|
+
**Keyboard:**
|
|
52
|
+
- All functionality available via keyboard
|
|
53
|
+
- No keyboard traps
|
|
54
|
+
- Logical focus order
|
|
55
|
+
- Visible focus indicators
|
|
56
|
+
- Skip links for navigation
|
|
57
|
+
|
|
58
|
+
**Check for:**
|
|
59
|
+
- `tabindex` usage (prefer 0 or -1, avoid positive)
|
|
60
|
+
- Focus styles (`:focus`, `:focus-visible`)
|
|
61
|
+
- Keyboard event handlers (onKeyPress, onKeyDown)
|
|
62
|
+
- Logical tab order
|
|
63
|
+
- Skip to main content link
|
|
64
|
+
|
|
65
|
+
**Timing:**
|
|
66
|
+
- Enough time to read/use content
|
|
67
|
+
- Ability to pause, stop, hide moving content
|
|
68
|
+
- No auto-refresh without control
|
|
69
|
+
|
|
70
|
+
### 3. Understandable
|
|
71
|
+
|
|
72
|
+
**Information and operation must be understandable**
|
|
73
|
+
|
|
74
|
+
**Readable:**
|
|
75
|
+
- Language of page declared (`lang` attribute)
|
|
76
|
+
- Clear, simple language
|
|
77
|
+
- Abbreviations explained
|
|
78
|
+
- Reading level appropriate
|
|
79
|
+
|
|
80
|
+
**Predictable:**
|
|
81
|
+
- Consistent navigation
|
|
82
|
+
- Consistent identification
|
|
83
|
+
- No unexpected context changes
|
|
84
|
+
- Changes on request, not automatically
|
|
85
|
+
|
|
86
|
+
**Input Assistance:**
|
|
87
|
+
- Error identification
|
|
88
|
+
- Labels and instructions
|
|
89
|
+
- Error suggestions
|
|
90
|
+
- Error prevention for critical actions
|
|
91
|
+
|
|
92
|
+
**Check for:**
|
|
93
|
+
- Form labels associated with inputs
|
|
94
|
+
- Required field indicators
|
|
95
|
+
- Error messages that explain how to fix
|
|
96
|
+
- Confirmation for destructive actions
|
|
97
|
+
|
|
98
|
+
### 4. Robust
|
|
99
|
+
|
|
100
|
+
**Content must be robust enough for assistive technologies**
|
|
101
|
+
|
|
102
|
+
**Check for:**
|
|
103
|
+
- Valid HTML (no duplicate IDs)
|
|
104
|
+
- Proper ARIA usage
|
|
105
|
+
- Name, role, value for custom components
|
|
106
|
+
- Status messages announced
|
|
107
|
+
|
|
108
|
+
## Semantic HTML Audit
|
|
109
|
+
|
|
110
|
+
```html
|
|
111
|
+
✓ Use semantic elements
|
|
112
|
+
<header>, <nav>, <main>, <article>, <section>, <aside>, <footer>
|
|
113
|
+
|
|
114
|
+
✓ Headings hierarchy
|
|
115
|
+
<h1> → <h2> → <h3> (don't skip levels)
|
|
116
|
+
|
|
117
|
+
✓ Lists for list content
|
|
118
|
+
<ul>, <ol>, <dl>
|
|
119
|
+
|
|
120
|
+
✓ Buttons for actions, links for navigation
|
|
121
|
+
<button> vs <a>
|
|
122
|
+
|
|
123
|
+
✓ Form structure
|
|
124
|
+
<form>, <label>, <fieldset>, <legend>
|
|
125
|
+
|
|
126
|
+
✗ Avoid divs/spans for interactive elements
|
|
127
|
+
<div onclick="..."> (use <button>)
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## ARIA Patterns
|
|
131
|
+
|
|
132
|
+
**Use ARIA when HTML isn't enough:**
|
|
133
|
+
|
|
134
|
+
```html
|
|
135
|
+
<!-- Landmark roles (prefer HTML5 elements) -->
|
|
136
|
+
<div role="navigation"> → <nav>
|
|
137
|
+
<div role="main"> → <main>
|
|
138
|
+
|
|
139
|
+
<!-- Widget roles -->
|
|
140
|
+
<div role="tab" aria-selected="true">
|
|
141
|
+
<div role="dialog" aria-modal="true" aria-labelledby="title">
|
|
142
|
+
<button aria-expanded="false" aria-controls="menu">
|
|
143
|
+
|
|
144
|
+
<!-- Live regions -->
|
|
145
|
+
<div aria-live="polite" aria-atomic="true">
|
|
146
|
+
<div role="alert">
|
|
147
|
+
<div role="status">
|
|
148
|
+
|
|
149
|
+
<!-- Properties -->
|
|
150
|
+
aria-label="Close dialog"
|
|
151
|
+
aria-labelledby="heading-id"
|
|
152
|
+
aria-describedby="description-id"
|
|
153
|
+
aria-hidden="true"
|
|
154
|
+
aria-disabled="true"
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
**ARIA Rules:**
|
|
158
|
+
1. First rule: Don't use ARIA (use semantic HTML)
|
|
159
|
+
2. Don't change native semantics
|
|
160
|
+
3. All interactive elements must be keyboard accessible
|
|
161
|
+
4. Don't use role="presentation" or aria-hidden on focusable elements
|
|
162
|
+
5. All interactive elements must have accessible names
|
|
163
|
+
|
|
164
|
+
## Keyboard Navigation Testing
|
|
165
|
+
|
|
166
|
+
**Essential keyboard shortcuts:**
|
|
167
|
+
- `Tab` - Next focusable element
|
|
168
|
+
- `Shift+Tab` - Previous focusable element
|
|
169
|
+
- `Enter` - Activate link/button
|
|
170
|
+
- `Space` - Activate button, check checkbox
|
|
171
|
+
- `Escape` - Close dialog/menu
|
|
172
|
+
- `Arrow keys` - Navigate within components (tabs, menus, radio groups)
|
|
173
|
+
|
|
174
|
+
**Test checklist:**
|
|
175
|
+
- [ ] Can reach all interactive elements via Tab
|
|
176
|
+
- [ ] Focus order matches visual order
|
|
177
|
+
- [ ] Focus is visible (clear indicator)
|
|
178
|
+
- [ ] No keyboard traps
|
|
179
|
+
- [ ] Skip link present and functional
|
|
180
|
+
- [ ] Modals trap focus appropriately
|
|
181
|
+
- [ ] Arrow key navigation in menus/tabs
|
|
182
|
+
- [ ] Escape closes dialogs/dropdowns
|
|
183
|
+
|
|
184
|
+
## Screen Reader Testing
|
|
185
|
+
|
|
186
|
+
**Common patterns:**
|
|
187
|
+
- Image: "Profile picture of John Doe, image"
|
|
188
|
+
- Button: "Submit form, button"
|
|
189
|
+
- Link: "Learn more, link"
|
|
190
|
+
- Heading: "Page title, heading level 1"
|
|
191
|
+
|
|
192
|
+
**Announcement check:**
|
|
193
|
+
- Do images have meaningful alt text?
|
|
194
|
+
- Do buttons describe their action?
|
|
195
|
+
- Do links make sense out of context?
|
|
196
|
+
- Are error messages announced?
|
|
197
|
+
- Are status updates announced (aria-live)?
|
|
198
|
+
|
|
199
|
+
## Automated Testing Integration
|
|
200
|
+
|
|
201
|
+
If wicked-browse available, can run axe-core:
|
|
202
|
+
|
|
203
|
+
Use pa11y or Lighthouse if available. Check with:
|
|
204
|
+
```bash
|
|
205
|
+
which pa11y && pa11y {url_or_file} || echo "pa11y not installed"
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
Otherwise, recommend tools:
|
|
209
|
+
- axe DevTools browser extension
|
|
210
|
+
- WAVE browser extension
|
|
211
|
+
- Lighthouse accessibility audit
|
|
212
|
+
- pa11y CLI tool
|
|
213
|
+
|
|
214
|
+
## Output Format
|
|
215
|
+
|
|
216
|
+
```markdown
|
|
217
|
+
## Accessibility Audit
|
|
218
|
+
|
|
219
|
+
**Target**: {what was audited}
|
|
220
|
+
**WCAG Level**: AA (2.1)
|
|
221
|
+
**Testing Method**: {code review | automated | manual}
|
|
222
|
+
|
|
223
|
+
### Compliance Summary
|
|
224
|
+
- Perceivable: {✓ Pass | ⚠ Issues | ✗ Fail}
|
|
225
|
+
- Operable: {✓ Pass | ⚠ Issues | ✗ Fail}
|
|
226
|
+
- Understandable: {✓ Pass | ⚠ Issues | ✗ Fail}
|
|
227
|
+
- Robust: {✓ Pass | ⚠ Issues | ✗ Fail}
|
|
228
|
+
|
|
229
|
+
### Issues
|
|
230
|
+
|
|
231
|
+
#### Critical (WCAG Level A violations)
|
|
232
|
+
- Issue that prevents access
|
|
233
|
+
- WCAG Criterion: {e.g., 1.1.1 Non-text Content}
|
|
234
|
+
- Location: {file/component}
|
|
235
|
+
- Impact: {who is affected}
|
|
236
|
+
- Fix: {specific code change}
|
|
237
|
+
|
|
238
|
+
#### Major (WCAG Level AA violations)
|
|
239
|
+
- Issue that creates barriers
|
|
240
|
+
- WCAG Criterion: {e.g., 1.4.3 Contrast}
|
|
241
|
+
- Location: {file/component}
|
|
242
|
+
- Impact: {user difficulty}
|
|
243
|
+
- Fix: {specific code change}
|
|
244
|
+
|
|
245
|
+
#### Minor (Best practice)
|
|
246
|
+
- Enhancement opportunity
|
|
247
|
+
- Location: {file/component}
|
|
248
|
+
- Suggestion: {improvement}
|
|
249
|
+
|
|
250
|
+
### Keyboard Navigation
|
|
251
|
+
{Summary of keyboard testing results}
|
|
252
|
+
|
|
253
|
+
### Screen Reader Experience
|
|
254
|
+
{Notes on screen reader announcements and navigation}
|
|
255
|
+
|
|
256
|
+
### Semantic HTML
|
|
257
|
+
{Assessment of semantic structure}
|
|
258
|
+
|
|
259
|
+
### ARIA Usage
|
|
260
|
+
{Notes on ARIA implementation - correct, missing, or misused}
|
|
261
|
+
|
|
262
|
+
### Recommendations
|
|
263
|
+
1. Priority fixes (WCAG A violations)
|
|
264
|
+
2. Important improvements (WCAG AA violations)
|
|
265
|
+
3. Enhancements (AAA or best practices)
|
|
266
|
+
|
|
267
|
+
### Testing Notes
|
|
268
|
+
{Manual testing steps, tools used, browser/AT combinations}
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
## Common Violations to Flag
|
|
272
|
+
|
|
273
|
+
```markdown
|
|
274
|
+
❌ Missing alt text on images
|
|
275
|
+
❌ Insufficient color contrast
|
|
276
|
+
❌ Form inputs without labels
|
|
277
|
+
❌ Missing focus indicators
|
|
278
|
+
❌ Keyboard traps
|
|
279
|
+
❌ Skipped heading levels
|
|
280
|
+
❌ Buttons with no accessible name
|
|
281
|
+
❌ Non-semantic div/span buttons
|
|
282
|
+
❌ Auto-playing media without controls
|
|
283
|
+
❌ Timeout without warning/extension
|
|
284
|
+
❌ Duplicate IDs
|
|
285
|
+
❌ Empty links or buttons
|
|
286
|
+
❌ Tables without headers
|
|
287
|
+
❌ Missing lang attribute
|
|
288
|
+
❌ Incorrect ARIA usage
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
## Collaboration Points
|
|
292
|
+
|
|
293
|
+
- **UX Designer**: Ensure accessible patterns in flows
|
|
294
|
+
- **UI Reviewer**: Validate color contrast and focus states
|
|
295
|
+
- **Developer**: Implement semantic HTML and ARIA
|
|
296
|
+
- **QE**: Include a11y testing in test scenarios
|
|
297
|
+
|
|
298
|
+
## Tracking Accessibility Issues
|
|
299
|
+
|
|
300
|
+
For tracking accessibility issues discovered during audit:
|
|
301
|
+
|
|
302
|
+
```
|
|
303
|
+
TaskCreate(
|
|
304
|
+
subject="A11y: {WCAG_criterion} - {issue_summary}",
|
|
305
|
+
description="Accessibility issue found during audit:
|
|
306
|
+
|
|
307
|
+
**WCAG Criterion**: {e.g., 1.1.1 Non-text Content}
|
|
308
|
+
**Severity**: {Critical|Major|Minor}
|
|
309
|
+
**Location**: {file/component}
|
|
310
|
+
**Impact**: {who is affected}
|
|
311
|
+
**Fix**: {specific code change}
|
|
312
|
+
|
|
313
|
+
{detailed_description}",
|
|
314
|
+
activeForm="Tracking accessibility issue for resolution"
|
|
315
|
+
)
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
## Resources
|
|
319
|
+
|
|
320
|
+
- WCAG 2.1 Quick Reference: https://www.w3.org/WAI/WCAG21/quickref/
|
|
321
|
+
- ARIA Authoring Practices: https://www.w3.org/WAI/ARIA/apg/
|
|
322
|
+
- WebAIM Articles: https://webaim.org/articles/
|
|
323
|
+
- Inclusive Components: https://inclusive-components.design/
|