@bookedsolid/reagent 0.6.0 → 0.7.1
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/agents/ai-platforms/ai-agentic-systems-architect.md +6 -5
- package/agents/ai-platforms/ai-anthropic-specialist.md +6 -5
- package/agents/ai-platforms/ai-cost-optimizer.md +6 -5
- package/agents/ai-platforms/ai-deepseek-specialist.md +84 -0
- package/agents/ai-platforms/ai-elevenlabs-specialist.md +76 -0
- package/agents/ai-platforms/ai-evaluation-specialist.md +6 -5
- package/agents/ai-platforms/ai-fine-tuning-specialist.md +6 -5
- package/agents/ai-platforms/ai-gemini-specialist.md +6 -5
- package/agents/ai-platforms/ai-governance-officer.md +6 -5
- package/agents/ai-platforms/ai-grok-specialist.md +72 -0
- package/agents/ai-platforms/ai-knowledge-engineer.md +6 -5
- package/agents/ai-platforms/ai-local-llm-specialist.md +96 -0
- package/agents/ai-platforms/ai-mcp-developer.md +6 -5
- package/agents/ai-platforms/ai-multi-modal-specialist.md +6 -5
- package/agents/ai-platforms/ai-open-source-models-specialist.md +6 -5
- package/agents/ai-platforms/ai-openai-specialist.md +6 -5
- package/agents/ai-platforms/ai-platform-strategist.md +6 -5
- package/agents/ai-platforms/ai-prompt-engineer.md +6 -5
- package/agents/ai-platforms/ai-rag-architect.md +6 -5
- package/agents/ai-platforms/ai-rea.md +6 -5
- package/agents/ai-platforms/ai-research-scientist.md +6 -5
- package/agents/ai-platforms/ai-safety-reviewer.md +6 -5
- package/agents/ai-platforms/ai-security-red-teamer.md +6 -5
- package/agents/ai-platforms/ai-synthetic-data-engineer.md +6 -5
- package/agents/ai-platforms/ai-video-ai-specialist.md +104 -0
- package/agents/engineering/accessibility-engineer.md +6 -5
- package/agents/engineering/aws-architect.md +6 -5
- package/agents/engineering/backend-engineer-payments.md +5 -4
- package/agents/engineering/backend-engineering-manager.md +5 -4
- package/agents/engineering/code-reviewer.md +6 -5
- package/agents/engineering/css3-animation-purist.md +4 -3
- package/agents/engineering/cto-advisory.md +49 -0
- package/agents/engineering/data-engineer.md +6 -5
- package/agents/engineering/database-architect.md +5 -4
- package/agents/engineering/design-system-developer.md +4 -3
- package/agents/engineering/design-systems-animator.md +5 -4
- package/agents/engineering/devops-engineer.md +6 -5
- package/agents/engineering/drupal-integration-specialist.md +5 -4
- package/agents/engineering/drupal-specialist.md +6 -5
- package/agents/engineering/engineering-manager-frontend.md +5 -4
- package/agents/engineering/frontend-specialist.md +6 -5
- package/agents/engineering/infrastructure-engineer.md +5 -4
- package/agents/engineering/lit-specialist.md +6 -5
- package/agents/engineering/migration-specialist.md +6 -5
- package/agents/engineering/ml-engineer.md +5 -4
- package/agents/engineering/mobile-engineer.md +6 -5
- package/agents/engineering/nextjs-specialist.md +6 -5
- package/agents/engineering/open-source-specialist.md +6 -5
- package/agents/engineering/performance-engineer.md +6 -5
- package/agents/engineering/performance-qa-engineer.md +5 -4
- package/agents/engineering/pr-maintainer.md +6 -5
- package/agents/engineering/principal-engineer.md +6 -5
- package/agents/engineering/privacy-engineer.md +5 -4
- package/agents/engineering/qa-engineer-automation.md +77 -0
- package/agents/engineering/qa-engineer-manual.md +48 -0
- package/agents/engineering/qa-engineer.md +6 -5
- package/agents/engineering/qa-lead.md +124 -0
- package/agents/engineering/security-engineer-appsec.md +47 -0
- package/agents/engineering/security-engineer-compliance.md +47 -0
- package/agents/engineering/security-engineer.md +6 -5
- package/agents/engineering/senior-backend-engineer.md +5 -4
- package/agents/engineering/senior-database-engineer.md +5 -4
- package/agents/engineering/senior-frontend-engineer.md +5 -4
- package/agents/engineering/senior-product-manager-platform.md +5 -4
- package/agents/engineering/senior-technical-project-manager.md +5 -4
- package/agents/engineering/site-reliability-engineer-2.md +5 -4
- package/agents/engineering/solutions-architect.md +6 -5
- package/agents/engineering/sre-lead.md +5 -4
- package/agents/engineering/staff-engineer-platform.md +5 -4
- package/agents/engineering/staff-software-engineer.md +5 -4
- package/agents/engineering/storybook-specialist.md +5 -4
- package/agents/engineering/supabase-specialist.md +6 -5
- package/agents/engineering/technical-project-manager.md +5 -4
- package/agents/engineering/test-architect.md +5 -4
- package/agents/engineering/typescript-specialist.md +6 -5
- package/agents/engineering/ux-researcher.md +4 -3
- package/agents/engineering/vp-engineering.md +6 -5
- package/agents/product-owner.md +5 -0
- package/agents/reagent-orchestrator.md +5 -0
- package/dist/cli/commands/catalyze/gap-detector.d.ts +6 -0
- package/dist/cli/commands/catalyze/gap-detector.d.ts.map +1 -0
- package/dist/cli/commands/catalyze/gap-detector.js +359 -0
- package/dist/cli/commands/catalyze/gap-detector.js.map +1 -0
- package/dist/cli/commands/catalyze/index.d.ts +15 -0
- package/dist/cli/commands/catalyze/index.d.ts.map +1 -0
- package/dist/cli/commands/catalyze/index.js +149 -0
- package/dist/cli/commands/catalyze/index.js.map +1 -0
- package/dist/cli/commands/catalyze/report-generator.d.ts +17 -0
- package/dist/cli/commands/catalyze/report-generator.d.ts.map +1 -0
- package/dist/cli/commands/catalyze/report-generator.js +290 -0
- package/dist/cli/commands/catalyze/report-generator.js.map +1 -0
- package/dist/cli/commands/catalyze/stack-analyzer.d.ts +6 -0
- package/dist/cli/commands/catalyze/stack-analyzer.d.ts.map +1 -0
- package/dist/cli/commands/catalyze/stack-analyzer.js +267 -0
- package/dist/cli/commands/catalyze/stack-analyzer.js.map +1 -0
- package/dist/cli/commands/catalyze/types.d.ts +40 -0
- package/dist/cli/commands/catalyze/types.d.ts.map +1 -0
- package/dist/cli/commands/catalyze/types.js +2 -0
- package/dist/cli/commands/catalyze/types.js.map +1 -0
- package/dist/cli/commands/init/agents.d.ts.map +1 -1
- package/dist/cli/commands/init/agents.js +9 -0
- package/dist/cli/commands/init/agents.js.map +1 -1
- package/dist/cli/commands/init/claude-hooks.d.ts.map +1 -1
- package/dist/cli/commands/init/claude-hooks.js +27 -0
- package/dist/cli/commands/init/claude-hooks.js.map +1 -1
- package/dist/cli/commands/init/commands.d.ts.map +1 -1
- package/dist/cli/commands/init/commands.js +9 -0
- package/dist/cli/commands/init/commands.js.map +1 -1
- package/dist/cli/commands/init/discord.d.ts +21 -0
- package/dist/cli/commands/init/discord.d.ts.map +1 -0
- package/dist/cli/commands/init/discord.js +87 -0
- package/dist/cli/commands/init/discord.js.map +1 -0
- package/dist/cli/commands/init/index.d.ts.map +1 -1
- package/dist/cli/commands/init/index.js +61 -17
- package/dist/cli/commands/init/index.js.map +1 -1
- package/dist/cli/commands/init/profiles.d.ts +39 -0
- package/dist/cli/commands/init/profiles.d.ts.map +1 -0
- package/dist/cli/commands/init/profiles.js +132 -0
- package/dist/cli/commands/init/profiles.js.map +1 -0
- package/dist/cli/index.js +27 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/gateway/native-tools.d.ts.map +1 -1
- package/dist/gateway/native-tools.js +25 -0
- package/dist/gateway/native-tools.js.map +1 -1
- package/dist/pm/discord-notifier.d.ts +52 -0
- package/dist/pm/discord-notifier.d.ts.map +1 -0
- package/dist/pm/discord-notifier.js +122 -0
- package/dist/pm/discord-notifier.js.map +1 -0
- package/package.json +1 -1
- package/profiles/astro/README.md +44 -0
- package/profiles/astro/agents.txt +3 -0
- package/profiles/astro/gates.yaml +15 -0
- package/profiles/astro/hooks/astro-ssr-guard.sh +73 -0
- package/profiles/drupal/README.md +53 -0
- package/profiles/drupal/agents.txt +4 -0
- package/profiles/drupal/gates.yaml +15 -0
- package/profiles/drupal/hooks/drupal-coding-standards.sh +70 -0
- package/profiles/drupal/hooks/hook-update-guard.sh +65 -0
- package/profiles/lit-wc/README.md +48 -0
- package/profiles/lit-wc/agents.txt +4 -0
- package/profiles/lit-wc/gates.yaml +15 -0
- package/profiles/lit-wc/hooks/cem-integrity-gate.sh +48 -0
- package/profiles/lit-wc/hooks/shadow-dom-guard.sh +76 -0
- package/profiles/nextjs/README.md +44 -0
- package/profiles/nextjs/agents.txt +4 -0
- package/profiles/nextjs/gates.yaml +15 -0
- package/profiles/nextjs/hooks/server-component-drift.sh +73 -0
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: senior-technical-project-manager
|
|
3
3
|
description: Senior Technical Project Manager with 5+ years experience managing infrastructure and platform projects, coordinating technical initiatives, and tracking delivery
|
|
4
|
-
firstName:
|
|
5
|
-
middleInitial:
|
|
6
|
-
lastName:
|
|
7
|
-
fullName:
|
|
4
|
+
firstName: Radia
|
|
5
|
+
middleInitial: L
|
|
6
|
+
lastName: Conway
|
|
7
|
+
fullName: Radia L. Conway
|
|
8
|
+
inspiration: "Perlman's spanning tree keeps the internet loop-free and self-healing; Conway's VLSI methodology scaled chip fabrication to civilization — the senior TPM who finds the topology that makes every project self-healing."
|
|
8
9
|
category: engineering
|
|
9
10
|
---
|
|
10
11
|
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: site-reliability-engineer-2
|
|
3
3
|
description: Site Reliability Engineer supporting SRE Lead with on-call rotation, infrastructure automation, monitoring, and incident response
|
|
4
|
-
firstName:
|
|
5
|
-
middleInitial:
|
|
6
|
-
lastName:
|
|
7
|
-
fullName:
|
|
4
|
+
firstName: Gene
|
|
5
|
+
middleInitial: J
|
|
6
|
+
lastName: Allspaw
|
|
7
|
+
fullName: Gene J. Allspaw
|
|
8
|
+
inspiration: "Kim chronicled how elite teams manage reliability in The Phoenix Project; Allspaw's ten deploys a day at Flickr proved uptime and velocity aren't opposites — the SRE who treats every incident as a learning event, not a blame event."
|
|
8
9
|
category: engineering
|
|
9
10
|
---
|
|
10
11
|
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: solutions-architect
|
|
3
3
|
description: Solutions architect responsible for system design, technology evaluation, cross-platform integration strategy, and technical architecture
|
|
4
|
-
firstName:
|
|
5
|
-
middleInitial:
|
|
6
|
-
lastName:
|
|
7
|
-
fullName:
|
|
4
|
+
firstName: Maxwell
|
|
5
|
+
middleInitial: I
|
|
6
|
+
lastName: Sutherland
|
|
7
|
+
fullName: Maxwell I. Sutherland
|
|
8
|
+
inspiration: Maxwell unified electricity and magnetism with four equations; Sutherland invented the graphical computer interface with Sketchpad in 1963 and then dreamed up virtual reality with the Sword of Damocles — the architect who sees disparate systems not as chaos but as a unified theory waiting to be written.
|
|
8
9
|
category: engineering
|
|
9
10
|
---
|
|
10
11
|
|
|
11
|
-
# Solutions Architect —
|
|
12
|
+
# Solutions Architect — Maxwell I. Sutherland
|
|
12
13
|
|
|
13
14
|
You are the Solutions Architect for this project, the technical strategist for system design and integration.
|
|
14
15
|
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sre-lead
|
|
3
3
|
description: SRE Lead with 7+ years site reliability engineering, managing on-call rotations, incident response, disaster recovery, infrastructure automation, and observability for 99.9%+ uptime
|
|
4
|
-
firstName:
|
|
5
|
-
middleInitial:
|
|
6
|
-
lastName:
|
|
7
|
-
fullName:
|
|
4
|
+
firstName: Ken
|
|
5
|
+
middleInitial: L
|
|
6
|
+
lastName: Lamport
|
|
7
|
+
fullName: Ken L. Lamport
|
|
8
|
+
inspiration: Thompson built the first reliable OS on hardware that failed constantly; Lamport gave distributed systems the mathematics of consensus — the SRE lead who knows reliability is not the absence of failure but the presence of systems that recover before anyone notices.
|
|
8
9
|
category: engineering
|
|
9
10
|
---
|
|
10
11
|
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: staff-engineer-platform
|
|
3
3
|
description: Staff Engineer for Platform with 10+ years experience leading technical architecture, designing scalable systems, mentoring senior engineers, and establishing engineering excellence standards for high-growth tech companies
|
|
4
|
-
firstName:
|
|
5
|
-
middleInitial:
|
|
6
|
-
lastName:
|
|
7
|
-
fullName:
|
|
4
|
+
firstName: Donald
|
|
5
|
+
middleInitial: T
|
|
6
|
+
lastName: Berners
|
|
7
|
+
fullName: Donald T. Berners
|
|
8
|
+
inspiration: 'Knuth elevated programming to an art form across three volumes; Berners-Lee gave away the web so that art could be shared by everyone — the staff engineer who believes perfect infrastructure is invisible, and invisible infrastructure is the highest craft.'
|
|
8
9
|
category: engineering
|
|
9
10
|
---
|
|
10
11
|
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: staff-software-engineer
|
|
3
3
|
description: Staff engineer with 12+ years spanning full-stack to frontend specialization, cross-cutting concerns, monorepo tooling, and build system architecture
|
|
4
|
-
firstName:
|
|
5
|
-
middleInitial:
|
|
6
|
-
lastName:
|
|
7
|
-
fullName:
|
|
4
|
+
firstName: Douglas
|
|
5
|
+
middleInitial: B
|
|
6
|
+
lastName: Kernighan
|
|
7
|
+
fullName: Douglas B. Kernighan
|
|
8
|
+
inspiration: 'Engelbart invented the mouse and the concept of augmenting human intellect; Kernighan wrote the book on clean, efficient code — the staff engineer who makes every developer 10x more effective without writing a line for them.'
|
|
8
9
|
category: engineering
|
|
9
10
|
---
|
|
10
11
|
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: storybook-specialist
|
|
3
3
|
description: Storybook expert with 5+ years building component documentation platforms, framework integration, auto-docs, visual regression testing, and interaction testing for design systems
|
|
4
|
-
firstName:
|
|
5
|
-
middleInitial:
|
|
6
|
-
lastName:
|
|
7
|
-
fullName:
|
|
4
|
+
firstName: Tom
|
|
5
|
+
middleInitial: M
|
|
6
|
+
lastName: Fowler
|
|
7
|
+
fullName: Tom M. Fowler
|
|
8
|
+
inspiration: Coleman built Storybook so components could tell their own stories; Fowler defined the design patterns that make components worth documenting — the Storybook specialist who believes a component without a story is a component without a soul.
|
|
8
9
|
category: engineering
|
|
9
10
|
---
|
|
10
11
|
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: supabase-specialist
|
|
3
3
|
description: Supabase specialist with deep expertise in PostgreSQL RLS policies, Edge Functions, Realtime subscriptions, Auth integration, database migrations, and building production applications on the Supabase platform
|
|
4
|
-
firstName:
|
|
5
|
-
middleInitial:
|
|
6
|
-
lastName:
|
|
7
|
-
fullName:
|
|
4
|
+
firstName: Nikita
|
|
5
|
+
middleInitial: M
|
|
6
|
+
lastName: Stonebraker
|
|
7
|
+
fullName: Nikita M. Stonebraker
|
|
8
|
+
inspiration: Stonebraker spent 50 years pushing what a relational database could do; Shamgunov carried that obsession into the cloud-native era — the Supabase specialist who makes PostgreSQL feel like a complete backend in a single config file.
|
|
8
9
|
category: engineering
|
|
9
10
|
---
|
|
10
11
|
|
|
11
|
-
# Supabase Specialist —
|
|
12
|
+
# Supabase Specialist — Nikita M. Stonebraker
|
|
12
13
|
|
|
13
14
|
You are the Supabase specialist for this project, responsible for all database, auth, and backend infrastructure built on the Supabase platform.
|
|
14
15
|
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: technical-project-manager
|
|
3
3
|
description: Technical Project Manager with 3+ years experience managing product feature delivery, coordinating with Product/Design/Engineering, and ensuring sprint execution
|
|
4
|
-
firstName:
|
|
5
|
-
middleInitial:
|
|
6
|
-
lastName:
|
|
7
|
-
fullName:
|
|
4
|
+
firstName: Frederick
|
|
5
|
+
middleInitial: E
|
|
6
|
+
lastName: Yourdon
|
|
7
|
+
fullName: Frederick E. Yourdon
|
|
8
|
+
inspiration: "Brooks gave us the Mythical Man Month; Yourdon defined structured design for complex systems — the TPM who understands that nine women can't make a baby in one month and plans the sprint accordingly."
|
|
8
9
|
category: engineering
|
|
9
10
|
---
|
|
10
11
|
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: test-architect
|
|
3
3
|
description: Test architect specializing in testing strategy, test infrastructure, coverage targets, and CI test pipeline design for modern JavaScript/TypeScript projects
|
|
4
|
-
firstName:
|
|
5
|
-
middleInitial:
|
|
6
|
-
lastName:
|
|
7
|
-
fullName:
|
|
4
|
+
firstName: Lisa
|
|
5
|
+
middleInitial: M
|
|
6
|
+
lastName: Bolton
|
|
7
|
+
fullName: Lisa M. Bolton
|
|
8
|
+
inspiration: 'Crispin and Bolton collectively redefined modern testing strategy as a discovery practice — the test architect who designs frameworks that reveal truth about the system, not just certify that requirements were met.'
|
|
8
9
|
category: engineering
|
|
9
10
|
---
|
|
10
11
|
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: typescript-specialist
|
|
3
3
|
description: TypeScript specialist enforcing strict mode, type system design, declaration files, and type safety across codebases
|
|
4
|
-
firstName:
|
|
5
|
-
middleInitial:
|
|
6
|
-
lastName:
|
|
7
|
-
fullName:
|
|
4
|
+
firstName: Anders
|
|
5
|
+
middleInitial: J
|
|
6
|
+
lastName: Gosling
|
|
7
|
+
fullName: Anders J. Gosling
|
|
8
|
+
inspiration: 'Hejlsberg gave the web a type system and made C# elegant; Gosling gave enterprise a safe, portable language — the TypeScript specialist who knows a good type error today is a runtime disaster prevented tomorrow, and precision is kindness.'
|
|
8
9
|
category: engineering
|
|
9
10
|
---
|
|
10
11
|
|
|
11
|
-
# TypeScript Specialist —
|
|
12
|
+
# TypeScript Specialist — Anders J. Gosling
|
|
12
13
|
|
|
13
14
|
You are the TypeScript specialist for this project.
|
|
14
15
|
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ux-researcher
|
|
3
3
|
description: UX Researcher with 3+ years experience in user interviews, usability testing, and research methods
|
|
4
|
-
firstName:
|
|
4
|
+
firstName: Don
|
|
5
5
|
middleInitial: J
|
|
6
|
-
lastName:
|
|
7
|
-
fullName:
|
|
6
|
+
lastName: Nielsen
|
|
7
|
+
fullName: Don J. Nielsen
|
|
8
|
+
inspiration: Norman gave us affordances and the psychology of everyday things; Nielsen gave us heuristics and the discipline of usability testing — the UX researcher who knows every interaction is a hypothesis about human behavior waiting to be tested.
|
|
8
9
|
category: engineering
|
|
9
10
|
---
|
|
10
11
|
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vp-engineering
|
|
3
3
|
description: VP of Engineering coordinating the engineering team, managing delegation, quality gates, and delivery
|
|
4
|
-
firstName:
|
|
5
|
-
middleInitial:
|
|
6
|
-
lastName:
|
|
7
|
-
fullName:
|
|
4
|
+
firstName: Linus
|
|
5
|
+
middleInitial: E
|
|
6
|
+
lastName: Dijkstra
|
|
7
|
+
fullName: Linus E. Dijkstra
|
|
8
|
+
inspiration: Torvalds built the OS the modern world runs on from first principles; Dijkstra proved the shortest path through any graph — the VP who finds the most elegant route from chaos to shipped software and insists the team take it.
|
|
8
9
|
category: engineering
|
|
9
10
|
---
|
|
10
11
|
|
|
11
|
-
# VP of Engineering —
|
|
12
|
+
# VP of Engineering — Linus E. Dijkstra
|
|
12
13
|
|
|
13
14
|
You lead the engineering team for this project. You do not write code. You coordinate, delegate, set standards, unblock, and ensure the team ships high-quality work.
|
|
14
15
|
|
package/agents/product-owner.md
CHANGED
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
model: sonnet
|
|
3
3
|
description: Product Owner agent for task management — creates, prioritizes, and tracks tasks with guardrails to prevent over-ticketing and scope creep
|
|
4
4
|
tools: task_create, task_update, task_list, task_get, task_delete, task_sync_github
|
|
5
|
+
firstName: Mary
|
|
6
|
+
middleInitial: K
|
|
7
|
+
lastName: Schwaber
|
|
8
|
+
fullName: Mary K. Schwaber
|
|
9
|
+
inspiration: "Poppendieck brought lean manufacturing's waste elimination into software delivery; Schwaber created Scrum to make product development empirical rather than predictive — the product owner who keeps the backlog honest, the sprint achievable, and the user always visible."
|
|
5
10
|
---
|
|
6
11
|
|
|
7
12
|
# Product Owner Agent
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: reagent-orchestrator
|
|
3
3
|
description: Project process orchestrator — enforces policy.yaml autonomy level, routes tasks to specialist agents, checks HALT before delegation. Delegate all non-trivial implementation tasks here first.
|
|
4
|
+
firstName: Leonardo
|
|
5
|
+
middleInitial: J
|
|
6
|
+
lastName: Von Neumann
|
|
7
|
+
fullName: Leonardo J. Von Neumann
|
|
8
|
+
inspiration: "da Vinci's insatiable genius across every domain fused with Von Neumann's computational architecture — the orchestrator who sees every task as both art and algorithm, routing brilliance with the precision of a universal machine."
|
|
4
9
|
---
|
|
5
10
|
|
|
6
11
|
You are the reagent orchestrator for this project. Your role is to enforce project engineering processes and coordinate specialist agents. You do not implement work directly — you orchestrate it.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gap-detector.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/catalyze/gap-detector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAO,WAAW,EAAE,MAAM,YAAY,CAAC;AAgXlE;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,aAAa,GAAG,WAAW,CA0C/D"}
|
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
// All hooks recommended for every project (base catalog)
|
|
2
|
+
const BASE_HOOKS = [
|
|
3
|
+
'secret-scanner',
|
|
4
|
+
'dangerous-bash-interceptor',
|
|
5
|
+
'env-file-protection',
|
|
6
|
+
'blocked-paths-enforcer',
|
|
7
|
+
'dependency-audit-gate',
|
|
8
|
+
'attribution-advisory',
|
|
9
|
+
'commit-review-gate',
|
|
10
|
+
'push-review-gate',
|
|
11
|
+
'settings-protection',
|
|
12
|
+
// v0.6.0 additions
|
|
13
|
+
'output-validation',
|
|
14
|
+
'file-size-guard',
|
|
15
|
+
'symlink-guard',
|
|
16
|
+
'git-config-guard',
|
|
17
|
+
'network-exfil-guard',
|
|
18
|
+
'rate-limit-guard',
|
|
19
|
+
'ci-config-protection',
|
|
20
|
+
'import-guard',
|
|
21
|
+
];
|
|
22
|
+
let gapCounter = 0;
|
|
23
|
+
function nextId() {
|
|
24
|
+
return `G-${String(++gapCounter).padStart(3, '0')}`;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Detect gaps against the base hook catalog.
|
|
28
|
+
*/
|
|
29
|
+
function detectBaseHookGaps(analysis) {
|
|
30
|
+
const gaps = [];
|
|
31
|
+
const installed = new Set(analysis.installedHooks);
|
|
32
|
+
for (const hook of BASE_HOOKS) {
|
|
33
|
+
if (!installed.has(hook)) {
|
|
34
|
+
const isCritical = [
|
|
35
|
+
'secret-scanner',
|
|
36
|
+
'dangerous-bash-interceptor',
|
|
37
|
+
'output-validation',
|
|
38
|
+
'env-file-protection',
|
|
39
|
+
].includes(hook);
|
|
40
|
+
gaps.push({
|
|
41
|
+
id: nextId(),
|
|
42
|
+
severity: isCritical ? 'critical' : 'high',
|
|
43
|
+
category: 'hook',
|
|
44
|
+
title: `Missing hook: ${hook}.sh`,
|
|
45
|
+
description: `The '${hook}' hook is not installed. It is part of the reagent base security catalog.`,
|
|
46
|
+
suggestion: `Run 'reagent init' to install all base hooks.`,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return gaps;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Detect Astro-specific gaps.
|
|
54
|
+
*/
|
|
55
|
+
function detectAstroGaps(analysis) {
|
|
56
|
+
const gaps = [];
|
|
57
|
+
const installed = new Set(analysis.installedHooks);
|
|
58
|
+
// Hook: astro-ssr-guard
|
|
59
|
+
if (!installed.has('astro-ssr-guard')) {
|
|
60
|
+
gaps.push({
|
|
61
|
+
id: nextId(),
|
|
62
|
+
severity: 'high',
|
|
63
|
+
category: 'hook',
|
|
64
|
+
title: 'Missing hook: astro-ssr-guard.sh',
|
|
65
|
+
description: 'Warns when React hooks or browser globals (document/window) appear in Astro frontmatter (SSR context).',
|
|
66
|
+
suggestion: `Run 'reagent init --profile astro' to install the Astro profile hooks.`,
|
|
67
|
+
projectTypes: ['astro'],
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
// Gate: astro check
|
|
71
|
+
const scripts = analysis.targetDir ? {} : {};
|
|
72
|
+
void scripts; // Placeholder — real scripts are read during stack analysis
|
|
73
|
+
gaps.push({
|
|
74
|
+
id: nextId(),
|
|
75
|
+
severity: 'critical',
|
|
76
|
+
category: 'gate',
|
|
77
|
+
title: 'Missing gate: astro check',
|
|
78
|
+
description: `'npx astro check' should be part of your preflight script to catch type errors in .astro files before commit.`,
|
|
79
|
+
suggestion: `Add 'npx astro check' to your preflight.sh or package.json scripts.`,
|
|
80
|
+
projectTypes: ['astro'],
|
|
81
|
+
});
|
|
82
|
+
// Gate: astro build
|
|
83
|
+
gaps.push({
|
|
84
|
+
id: nextId(),
|
|
85
|
+
severity: 'high',
|
|
86
|
+
category: 'gate',
|
|
87
|
+
title: 'Missing gate: astro build smoke test',
|
|
88
|
+
description: `'npx astro build' should run as a quality gate to catch build failures before push.`,
|
|
89
|
+
suggestion: `Add 'npx astro build' to your preflight.sh.`,
|
|
90
|
+
projectTypes: ['astro'],
|
|
91
|
+
});
|
|
92
|
+
return gaps;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Detect Next.js-specific gaps.
|
|
96
|
+
*/
|
|
97
|
+
function detectNextjsGaps(analysis) {
|
|
98
|
+
const gaps = [];
|
|
99
|
+
const installed = new Set(analysis.installedHooks);
|
|
100
|
+
if (!installed.has('server-component-drift')) {
|
|
101
|
+
gaps.push({
|
|
102
|
+
id: nextId(),
|
|
103
|
+
severity: 'high',
|
|
104
|
+
category: 'hook',
|
|
105
|
+
title: 'Missing hook: server-component-drift.sh',
|
|
106
|
+
description: "Warns when React client hooks appear in Server Components missing 'use client', and on dangerouslySetInnerHTML usage.",
|
|
107
|
+
suggestion: `Run 'reagent init --profile nextjs' to install the Next.js profile.`,
|
|
108
|
+
projectTypes: ['nextjs'],
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
gaps.push({
|
|
112
|
+
id: nextId(),
|
|
113
|
+
severity: 'critical',
|
|
114
|
+
category: 'gate',
|
|
115
|
+
title: 'Missing gate: next build',
|
|
116
|
+
description: `'npx next build' should be a preflight gate to catch build failures.`,
|
|
117
|
+
suggestion: `Add 'npx next build' to your preflight script.`,
|
|
118
|
+
projectTypes: ['nextjs'],
|
|
119
|
+
});
|
|
120
|
+
gaps.push({
|
|
121
|
+
id: nextId(),
|
|
122
|
+
severity: 'high',
|
|
123
|
+
category: 'gate',
|
|
124
|
+
title: 'Missing gate: next lint',
|
|
125
|
+
description: `'npx next lint' should run to catch ESLint issues in Next.js projects.`,
|
|
126
|
+
suggestion: `Add 'npx next lint' to your preflight script.`,
|
|
127
|
+
projectTypes: ['nextjs'],
|
|
128
|
+
});
|
|
129
|
+
return gaps;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Detect Lit/Web Components-specific gaps.
|
|
133
|
+
*/
|
|
134
|
+
function detectLitWcGaps(analysis) {
|
|
135
|
+
const gaps = [];
|
|
136
|
+
const installed = new Set(analysis.installedHooks);
|
|
137
|
+
if (!installed.has('shadow-dom-guard')) {
|
|
138
|
+
gaps.push({
|
|
139
|
+
id: nextId(),
|
|
140
|
+
severity: 'high',
|
|
141
|
+
category: 'hook',
|
|
142
|
+
title: 'Missing hook: shadow-dom-guard.sh',
|
|
143
|
+
description: 'Warns on document.querySelector inside web components, missing :host CSS scoping, and unsafe customElements.define() calls.',
|
|
144
|
+
suggestion: `Run 'reagent init --profile lit-wc' to install the Lit/WC profile.`,
|
|
145
|
+
projectTypes: ['lit-wc'],
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
if (!installed.has('cem-integrity-gate')) {
|
|
149
|
+
gaps.push({
|
|
150
|
+
id: nextId(),
|
|
151
|
+
severity: 'normal',
|
|
152
|
+
category: 'hook',
|
|
153
|
+
title: 'Missing hook: cem-integrity-gate.sh',
|
|
154
|
+
description: 'Reminds to regenerate custom-elements.json after component source changes and validates manifest integrity.',
|
|
155
|
+
suggestion: `Run 'reagent init --profile lit-wc' to install the Lit/WC profile.`,
|
|
156
|
+
projectTypes: ['lit-wc'],
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
gaps.push({
|
|
160
|
+
id: nextId(),
|
|
161
|
+
severity: 'critical',
|
|
162
|
+
category: 'gate',
|
|
163
|
+
title: 'Missing gate: cem analyze (Custom Elements Manifest)',
|
|
164
|
+
description: `'npx cem analyze' must pass to keep the custom elements manifest valid and in sync with component source.`,
|
|
165
|
+
suggestion: `Add 'npx cem analyze' to your preflight script and run 'reagent init --profile lit-wc'.`,
|
|
166
|
+
projectTypes: ['lit-wc'],
|
|
167
|
+
});
|
|
168
|
+
gaps.push({
|
|
169
|
+
id: nextId(),
|
|
170
|
+
severity: 'high',
|
|
171
|
+
category: 'gate',
|
|
172
|
+
title: 'Missing gate: Web Test Runner component tests',
|
|
173
|
+
description: `Component-level tests with @web/test-runner or equivalent are not detected.`,
|
|
174
|
+
suggestion: `Add 'npx wtr --coverage' to your preflight script.`,
|
|
175
|
+
projectTypes: ['lit-wc'],
|
|
176
|
+
});
|
|
177
|
+
gaps.push({
|
|
178
|
+
id: nextId(),
|
|
179
|
+
severity: 'high',
|
|
180
|
+
category: 'agent',
|
|
181
|
+
title: 'Missing agent: lit-specialist',
|
|
182
|
+
description: `A Lit/Web Component specialist agent is recommended for Shadow DOM and custom element architecture.`,
|
|
183
|
+
suggestion: `Run 'reagent init --profile lit-wc' to install specialist agents.`,
|
|
184
|
+
projectTypes: ['lit-wc'],
|
|
185
|
+
});
|
|
186
|
+
gaps.push({
|
|
187
|
+
id: nextId(),
|
|
188
|
+
severity: 'normal',
|
|
189
|
+
category: 'agent',
|
|
190
|
+
title: 'Missing agent: accessibility-engineer',
|
|
191
|
+
description: 'An accessibility specialist is recommended for web component a11y reviews.',
|
|
192
|
+
suggestion: `Run 'reagent init --profile lit-wc'.`,
|
|
193
|
+
projectTypes: ['lit-wc'],
|
|
194
|
+
});
|
|
195
|
+
if (analysis.testFiles.length === 0) {
|
|
196
|
+
gaps.push({
|
|
197
|
+
id: nextId(),
|
|
198
|
+
severity: 'high',
|
|
199
|
+
category: 'test',
|
|
200
|
+
title: 'Missing: visual regression tests',
|
|
201
|
+
description: 'No Playwright snapshots or visual regression tests detected. Components should have visual snapshots.',
|
|
202
|
+
suggestion: `Add Playwright component tests with visual snapshot assertions.`,
|
|
203
|
+
projectTypes: ['lit-wc'],
|
|
204
|
+
});
|
|
205
|
+
gaps.push({
|
|
206
|
+
id: nextId(),
|
|
207
|
+
severity: 'normal',
|
|
208
|
+
category: 'test',
|
|
209
|
+
title: 'Missing: a11y test suite',
|
|
210
|
+
description: 'No axe-core or @axe-core/playwright detected. Accessibility should be tested automatically.',
|
|
211
|
+
suggestion: `Add @axe-core/playwright to your test suite.`,
|
|
212
|
+
projectTypes: ['lit-wc'],
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
return gaps;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Detect Drupal-specific gaps.
|
|
219
|
+
*/
|
|
220
|
+
function detectDrupalGaps(analysis) {
|
|
221
|
+
const gaps = [];
|
|
222
|
+
const installed = new Set(analysis.installedHooks);
|
|
223
|
+
if (!installed.has('drupal-coding-standards')) {
|
|
224
|
+
gaps.push({
|
|
225
|
+
id: nextId(),
|
|
226
|
+
severity: 'high',
|
|
227
|
+
category: 'hook',
|
|
228
|
+
title: 'Missing hook: drupal-coding-standards.sh',
|
|
229
|
+
description: 'Warns on raw superglobals, hardcoded entity IDs, hook_update_N issues, and t() misuse.',
|
|
230
|
+
suggestion: `Run 'reagent init --profile drupal'.`,
|
|
231
|
+
projectTypes: ['drupal'],
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
if (!installed.has('hook-update-guard')) {
|
|
235
|
+
gaps.push({
|
|
236
|
+
id: nextId(),
|
|
237
|
+
severity: 'normal',
|
|
238
|
+
category: 'hook',
|
|
239
|
+
title: 'Missing hook: hook-update-guard.sh',
|
|
240
|
+
description: 'Guards .install files for destructive schema operations and update hook numbering gaps.',
|
|
241
|
+
suggestion: `Run 'reagent init --profile drupal'.`,
|
|
242
|
+
projectTypes: ['drupal'],
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
gaps.push({
|
|
246
|
+
id: nextId(),
|
|
247
|
+
severity: 'critical',
|
|
248
|
+
category: 'gate',
|
|
249
|
+
title: 'Missing gate: PHPCS Drupal coding standards',
|
|
250
|
+
description: `'vendor/bin/phpcs --standard=Drupal' must pass to enforce coding standards.`,
|
|
251
|
+
suggestion: `Install drupal/coder and run 'reagent init --profile drupal'.`,
|
|
252
|
+
projectTypes: ['drupal'],
|
|
253
|
+
});
|
|
254
|
+
gaps.push({
|
|
255
|
+
id: nextId(),
|
|
256
|
+
severity: 'high',
|
|
257
|
+
category: 'agent',
|
|
258
|
+
title: 'Missing agent: drupal-specialist',
|
|
259
|
+
description: 'A Drupal architecture specialist is recommended for module and theme development.',
|
|
260
|
+
suggestion: `Run 'reagent init --profile drupal'.`,
|
|
261
|
+
projectTypes: ['drupal'],
|
|
262
|
+
});
|
|
263
|
+
gaps.push({
|
|
264
|
+
id: nextId(),
|
|
265
|
+
severity: 'normal',
|
|
266
|
+
category: 'test',
|
|
267
|
+
title: 'Missing: Behat/PHPUnit behavioral tests',
|
|
268
|
+
description: 'No Behat or PHPUnit test files detected. Drupal modules should have test coverage.',
|
|
269
|
+
suggestion: `Add Behat behavioral tests for content workflows.`,
|
|
270
|
+
projectTypes: ['drupal'],
|
|
271
|
+
});
|
|
272
|
+
return gaps;
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Detect React-specific gaps (when not already nextjs).
|
|
276
|
+
*/
|
|
277
|
+
function detectReactGaps(_analysis) {
|
|
278
|
+
const gaps = [];
|
|
279
|
+
gaps.push({
|
|
280
|
+
id: nextId(),
|
|
281
|
+
severity: 'high',
|
|
282
|
+
category: 'gate',
|
|
283
|
+
title: 'Missing gate: Playwright or Cypress e2e coverage',
|
|
284
|
+
description: 'No e2e test runner detected. React apps should have e2e coverage.',
|
|
285
|
+
suggestion: `Add Playwright e2e tests and include 'npx playwright test' in preflight.`,
|
|
286
|
+
projectTypes: ['react'],
|
|
287
|
+
});
|
|
288
|
+
return gaps;
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Detect Node API-specific gaps.
|
|
292
|
+
*/
|
|
293
|
+
function detectNodeApiGaps(analysis) {
|
|
294
|
+
const gaps = [];
|
|
295
|
+
if (analysis.hasOpenApi) {
|
|
296
|
+
gaps.push({
|
|
297
|
+
id: nextId(),
|
|
298
|
+
severity: 'high',
|
|
299
|
+
category: 'gate',
|
|
300
|
+
title: 'Missing gate: OpenAPI/Swagger spec validation',
|
|
301
|
+
description: 'An OpenAPI spec is present but no validation gate is configured.',
|
|
302
|
+
suggestion: `Add 'npx @redocly/cli lint openapi.yaml' to your preflight script.`,
|
|
303
|
+
projectTypes: ['node-api'],
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
gaps.push({
|
|
307
|
+
id: nextId(),
|
|
308
|
+
severity: 'normal',
|
|
309
|
+
category: 'gate',
|
|
310
|
+
title: 'Missing gate: load test baseline',
|
|
311
|
+
description: 'No load testing tool (k6, autocannon) detected for API performance baseline.',
|
|
312
|
+
suggestion: `Add a k6 or autocannon load test script to your preflight or CI pipeline.`,
|
|
313
|
+
projectTypes: ['node-api'],
|
|
314
|
+
});
|
|
315
|
+
return gaps;
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Run full gap detection against a stack analysis.
|
|
319
|
+
*/
|
|
320
|
+
export function detectGaps(analysis) {
|
|
321
|
+
gapCounter = 0; // Reset counter for this run
|
|
322
|
+
const gaps = [];
|
|
323
|
+
// Base gaps (apply to all projects)
|
|
324
|
+
gaps.push(...detectBaseHookGaps(analysis));
|
|
325
|
+
// Type-specific gaps
|
|
326
|
+
for (const projectType of analysis.detectedTypes) {
|
|
327
|
+
switch (projectType) {
|
|
328
|
+
case 'astro':
|
|
329
|
+
gaps.push(...detectAstroGaps(analysis));
|
|
330
|
+
break;
|
|
331
|
+
case 'nextjs':
|
|
332
|
+
gaps.push(...detectNextjsGaps(analysis));
|
|
333
|
+
break;
|
|
334
|
+
case 'lit-wc':
|
|
335
|
+
gaps.push(...detectLitWcGaps(analysis));
|
|
336
|
+
break;
|
|
337
|
+
case 'drupal':
|
|
338
|
+
gaps.push(...detectDrupalGaps(analysis));
|
|
339
|
+
break;
|
|
340
|
+
case 'react':
|
|
341
|
+
gaps.push(...detectReactGaps(analysis));
|
|
342
|
+
break;
|
|
343
|
+
case 'node-api':
|
|
344
|
+
gaps.push(...detectNodeApiGaps(analysis));
|
|
345
|
+
break;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
// Sort: critical first, then high, then normal
|
|
349
|
+
const severityOrder = { critical: 0, high: 1, normal: 2 };
|
|
350
|
+
gaps.sort((a, b) => severityOrder[a.severity] - severityOrder[b.severity]);
|
|
351
|
+
return {
|
|
352
|
+
stack: analysis,
|
|
353
|
+
gaps,
|
|
354
|
+
totalRecommendedHooks: BASE_HOOKS.length,
|
|
355
|
+
installedHookCount: analysis.installedHooks.length,
|
|
356
|
+
totalRecommendedGates: 5, // Base estimate — varies by project type
|
|
357
|
+
};
|
|
358
|
+
}
|
|
359
|
+
//# sourceMappingURL=gap-detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gap-detector.js","sourceRoot":"","sources":["../../../../src/cli/commands/catalyze/gap-detector.ts"],"names":[],"mappings":"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"}
|