sinapse-ai 1.24.0 → 1.25.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/skills/react-bits-frontend/SKILL.md +66 -0
- package/.agents/skills/react-bits-frontend/agents/openai.yaml +4 -0
- package/.agents/skills/react-bits-frontend/references/corpus-map.md +29 -0
- package/.agents/skills/sinapse/SKILL.md +10 -0
- package/.agents/skills/sinapse-agent/SKILL.md +22 -0
- package/{.codex → .agents}/skills/sinapse-claude/SKILL.md +1 -1
- package/.agents/skills/sinapse-loop/SKILL.md +35 -0
- package/.agents/skills/sinapse-orqx/SKILL.md +44 -0
- package/.agents/skills/sinapse-spec-driven/SKILL.md +35 -0
- package/.agents/skills/snps/SKILL.md +10 -0
- package/.agents/skills/snps-orqx/SKILL.md +10 -0
- package/.claude/agents/README.md +67 -0
- package/.claude/agents/sinapse-ad-copywriter.md +14 -0
- package/.claude/agents/sinapse-agent-forger.md +14 -0
- package/.claude/agents/sinapse-analyst.md +14 -0
- package/.claude/agents/sinapse-animation-interpreter.md +14 -0
- package/.claude/agents/sinapse-animation-performance-engineer.md +14 -0
- package/.claude/agents/sinapse-animations-orqx.md +14 -0
- package/.claude/agents/sinapse-architect.md +14 -0
- package/.claude/agents/sinapse-assessment-creator.md +14 -0
- package/.claude/agents/sinapse-audience-intelligence.md +14 -0
- package/.claude/agents/sinapse-blake-snyder.md +14 -0
- package/.claude/agents/sinapse-brand-archetype-strategist.md +14 -0
- package/.claude/agents/sinapse-brand-auditor.md +14 -0
- package/.claude/agents/sinapse-brand-collateral-designer.md +14 -0
- package/.claude/agents/sinapse-brand-compiler.md +14 -0
- package/.claude/agents/sinapse-brand-creative-engineer.md +14 -0
- package/.claude/agents/sinapse-brand-culture-architect.md +14 -0
- package/.claude/agents/sinapse-brand-growth-strategist.md +14 -0
- package/.claude/agents/sinapse-brand-identity-designer.md +14 -0
- package/.claude/agents/sinapse-brand-motion-vfx.md +14 -0
- package/.claude/agents/sinapse-brand-naming-specialist.md +14 -0
- package/.claude/agents/sinapse-brand-orqx.md +14 -0
- package/.claude/agents/sinapse-brand-positioning-strategist.md +14 -0
- package/.claude/agents/sinapse-brand-sonic-designer.md +14 -0
- package/.claude/agents/sinapse-brand-strategist.md +14 -0
- package/.claude/agents/sinapse-brand-system-architect.md +14 -0
- package/.claude/agents/sinapse-brand-voice-writer.md +14 -0
- package/.claude/agents/sinapse-brene-brown.md +14 -0
- package/.claude/agents/sinapse-budget-controller.md +14 -0
- package/.claude/agents/sinapse-campaign-analyst.md +14 -0
- package/.claude/agents/sinapse-charlie-munger.md +14 -0
- package/.claude/agents/sinapse-claude-mastery-chief.md +14 -0
- package/.claude/agents/sinapse-cloning-orqx.md +14 -0
- package/.claude/agents/sinapse-cloud-security-engineer.md +14 -0
- package/.claude/agents/sinapse-cognitive-extractor.md +14 -0
- package/.claude/agents/sinapse-commercial-orqx.md +14 -0
- package/.claude/agents/sinapse-competitive-intelligence.md +14 -0
- package/.claude/agents/sinapse-compliance-officer.md +14 -0
- package/.claude/agents/sinapse-config-engineer.md +14 -0
- package/.claude/agents/sinapse-content-analyst.md +14 -0
- package/.claude/agents/sinapse-content-capturer.md +14 -0
- package/.claude/agents/sinapse-content-engineer.md +14 -0
- package/.claude/agents/sinapse-content-governor.md +14 -0
- package/.claude/agents/sinapse-content-orqx.md +14 -0
- package/.claude/agents/sinapse-content-writer.md +14 -0
- package/.claude/agents/sinapse-conversion-writer.md +14 -0
- package/.claude/agents/sinapse-copy-editor.md +14 -0
- package/.claude/agents/sinapse-copy-orqx.md +14 -0
- package/.claude/agents/sinapse-copy-strategist.md +14 -0
- package/.claude/agents/sinapse-cost-optimizer.md +14 -0
- package/.claude/agents/sinapse-council-orqx.md +14 -0
- package/.claude/agents/sinapse-courses-orqx.md +14 -0
- package/.claude/agents/sinapse-creative-strategist.md +14 -0
- package/.claude/agents/sinapse-cro-persuasion.md +14 -0
- package/.claude/agents/sinapse-cro-specialist.md +14 -0
- package/.claude/agents/sinapse-cs-business-auditor.md +14 -0
- package/.claude/agents/sinapse-cs-client-success.md +14 -0
- package/.claude/agents/sinapse-cs-crm-specialist.md +14 -0
- package/.claude/agents/sinapse-cs-funnel-architect.md +14 -0
- package/.claude/agents/sinapse-cs-lead-generation-strategist.md +14 -0
- package/.claude/agents/sinapse-cs-offer-designer.md +14 -0
- package/.claude/agents/sinapse-cs-revops-analyst.md +14 -0
- package/.claude/agents/sinapse-cs-sales-closer.md +14 -0
- package/.claude/agents/sinapse-cs-sales-enablement.md +14 -0
- package/.claude/agents/sinapse-css-motion-artist.md +14 -0
- package/.claude/agents/sinapse-curriculum-designer.md +14 -0
- package/.claude/agents/sinapse-cyber-orqx.md +14 -0
- package/.claude/agents/sinapse-dan-harmon.md +14 -0
- package/.claude/agents/sinapse-data-engineer.md +14 -0
- package/.claude/agents/sinapse-data-synthesizer.md +14 -0
- package/.claude/agents/sinapse-deep-researcher.md +14 -0
- package/.claude/agents/sinapse-derek-sivers.md +14 -0
- package/.claude/agents/sinapse-design-orqx.md +14 -0
- package/.claude/agents/sinapse-design-system.md +14 -0
- package/.claude/agents/sinapse-developer.md +14 -0
- package/.claude/agents/sinapse-devops.md +14 -0
- package/.claude/agents/sinapse-direct-response-writer.md +14 -0
- package/.claude/agents/sinapse-dx-accessibility-specialist.md +14 -0
- package/.claude/agents/sinapse-dx-design-system-architect.md +14 -0
- package/.claude/agents/sinapse-dx-frontend-engineer.md +14 -0
- package/.claude/agents/sinapse-dx-interaction-designer.md +14 -0
- package/.claude/agents/sinapse-dx-performance-engineer.md +14 -0
- package/.claude/agents/sinapse-dx-ui-designer.md +14 -0
- package/.claude/agents/sinapse-dx-ux-strategist.md +14 -0
- package/.claude/agents/sinapse-editorial-strategist.md +14 -0
- package/.claude/agents/sinapse-email-sequence-strategist.md +14 -0
- package/.claude/agents/sinapse-finance-orqx.md +14 -0
- package/.claude/agents/sinapse-fiscal-compliance-br.md +14 -0
- package/.claude/agents/sinapse-forecast-strategist.md +14 -0
- package/.claude/agents/sinapse-funnel-copywriter.md +14 -0
- package/.claude/agents/sinapse-ga-analytics-engineer.md +14 -0
- package/.claude/agents/sinapse-ga-campaign-analyst.md +14 -0
- package/.claude/agents/sinapse-ga-cro-specialist.md +14 -0
- package/.claude/agents/sinapse-ga-data-analyst.md +14 -0
- package/.claude/agents/sinapse-ga-growth-hacker.md +14 -0
- package/.claude/agents/sinapse-ga-seo-strategist.md +14 -0
- package/.claude/agents/sinapse-generative-particle-engineer.md +14 -0
- package/.claude/agents/sinapse-google-ads-specialist.md +14 -0
- package/.claude/agents/sinapse-growth-orqx.md +14 -0
- package/.claude/agents/sinapse-headline-specialist.md +14 -0
- package/.claude/agents/sinapse-hooks-architect.md +14 -0
- package/.claude/agents/sinapse-incident-responder.md +14 -0
- package/.claude/agents/sinapse-joseph-campbell.md +14 -0
- package/.claude/agents/sinapse-kb-architect.md +14 -0
- package/.claude/agents/sinapse-keith-johnstone.md +14 -0
- package/.claude/agents/sinapse-kindra-hall.md +14 -0
- package/.claude/agents/sinapse-launch-strategist.md +14 -0
- package/.claude/agents/sinapse-lesson-architect.md +14 -0
- package/.claude/agents/sinapse-long-form-writer.md +14 -0
- package/.claude/agents/sinapse-market-analyst.md +14 -0
- package/.claude/agents/sinapse-marshall-ganz.md +14 -0
- package/.claude/agents/sinapse-mcp-integrator.md +14 -0
- package/.claude/agents/sinapse-meta-ads-specialist.md +14 -0
- package/.claude/agents/sinapse-mind-synthesizer.md +14 -0
- package/.claude/agents/sinapse-motion-choreographer.md +14 -0
- package/.claude/agents/sinapse-nancy-duarte.md +14 -0
- package/.claude/agents/sinapse-naval-ravikant.md +14 -0
- package/.claude/agents/sinapse-network-security-engineer.md +14 -0
- package/.claude/agents/sinapse-oren-klaff.md +14 -0
- package/.claude/agents/sinapse-paidmedia-orqx.md +14 -0
- package/.claude/agents/sinapse-park-howell.md +14 -0
- package/.claude/agents/sinapse-patrick-lencioni.md +14 -0
- package/.claude/agents/sinapse-penetration-tester.md +14 -0
- package/.claude/agents/sinapse-performance-engineer.md +14 -0
- package/.claude/agents/sinapse-persuasion-psychologist.md +14 -0
- package/.claude/agents/sinapse-peter-thiel.md +14 -0
- package/.claude/agents/sinapse-platform-aesthetic-director.md +14 -0
- package/.claude/agents/sinapse-platform-specialist.md +14 -0
- package/.claude/agents/sinapse-pm-creative-performance-analyst.md +14 -0
- package/.claude/agents/sinapse-pm-youtube-ads-specialist.md +14 -0
- package/.claude/agents/sinapse-premium-packaging-strategist.md +14 -0
- package/.claude/agents/sinapse-pricing-strategist.md +14 -0
- package/.claude/agents/sinapse-product-lead.md +14 -0
- package/.claude/agents/sinapse-product-orqx.md +14 -0
- package/.claude/agents/sinapse-product-surface-director.md +14 -0
- package/.claude/agents/sinapse-production-director.md +14 -0
- package/.claude/agents/sinapse-profitability-analyst.md +14 -0
- package/.claude/agents/sinapse-project-integrator.md +14 -0
- package/.claude/agents/sinapse-project-lead.md +14 -0
- package/.claude/agents/sinapse-proof-architect.md +14 -0
- package/.claude/agents/sinapse-ps-client-product-manager.md +14 -0
- package/.claude/agents/sinapse-ps-delivery-manager.md +14 -0
- package/.claude/agents/sinapse-ps-discovery-lead.md +14 -0
- package/.claude/agents/sinapse-ps-product-analyst.md +14 -0
- package/.claude/agents/sinapse-ps-product-ops-specialist.md +14 -0
- package/.claude/agents/sinapse-ps-product-strategist.md +14 -0
- package/.claude/agents/sinapse-quality-gate.md +14 -0
- package/.claude/agents/sinapse-ray-dalio.md +14 -0
- package/.claude/agents/sinapse-reid-hoffman.md +14 -0
- package/.claude/agents/sinapse-research-orqx.md +14 -0
- package/.claude/agents/sinapse-revenue-analyst.md +14 -0
- package/.claude/agents/sinapse-roadmap-sentinel.md +14 -0
- package/.claude/agents/sinapse-scroll-narrative-engineer.md +14 -0
- package/.claude/agents/sinapse-shader-artist.md +14 -0
- package/.claude/agents/sinapse-signal-intelligence.md +14 -0
- package/.claude/agents/sinapse-simon-sinek.md +14 -0
- package/.claude/agents/sinapse-skill-craftsman.md +14 -0
- package/.claude/agents/sinapse-slide-designer.md +14 -0
- package/.claude/agents/sinapse-snps-orqx.md +14 -0
- package/.claude/agents/sinapse-soc-analyst.md +14 -0
- package/.claude/agents/sinapse-sop-extractor.md +14 -0
- package/.claude/agents/sinapse-source-hunter.md +14 -0
- package/.claude/agents/sinapse-sprint-lead.md +14 -0
- package/.claude/agents/sinapse-squad-assembler.md +14 -0
- package/.claude/agents/sinapse-squad-creator.md +14 -0
- package/.claude/agents/sinapse-storytelling-orqx.md +14 -0
- package/.claude/agents/sinapse-swarm-orqx.md +14 -0
- package/.claude/agents/sinapse-threat-analyst.md +14 -0
- package/.claude/agents/sinapse-threejs-architect.md +14 -0
- package/.claude/agents/sinapse-trend-forecaster.md +14 -0
- package/.claude/agents/sinapse-ux-design-expert.md +14 -0
- package/.claude/agents/sinapse-ux-designer.md +14 -0
- package/.claude/agents/sinapse-yvon-chouinard.md +14 -0
- package/.claude/rules/software-engineering-applicability.md +13 -0
- package/.claude/settings.json +170 -0
- package/.claude/skill-manifest.json +41 -0
- package/.claude/skills/api-review.md +50 -0
- package/.claude/skills/component-check.md +47 -0
- package/.claude/skills/db-review.md +41 -0
- package/.claude/skills/sinapse/SKILL.md +11 -0
- package/.claude/skills/sinapse-agent/SKILL.md +11 -0
- package/.claude/skills/sinapse-analyst/SKILL.md +11 -0
- package/.claude/skills/sinapse-animations/SKILL.md +11 -0
- package/.claude/skills/sinapse-architect/SKILL.md +11 -0
- package/.claude/skills/sinapse-brand/SKILL.md +11 -0
- package/.claude/skills/sinapse-claude/SKILL.md +11 -0
- package/.claude/skills/sinapse-cloning/SKILL.md +11 -0
- package/.claude/skills/sinapse-commercial/SKILL.md +11 -0
- package/.claude/skills/sinapse-content/SKILL.md +11 -0
- package/.claude/skills/sinapse-copy/SKILL.md +11 -0
- package/.claude/skills/sinapse-council/SKILL.md +11 -0
- package/.claude/skills/sinapse-courses/SKILL.md +11 -0
- package/.claude/skills/sinapse-cyber/SKILL.md +11 -0
- package/.claude/skills/sinapse-data-engineer/SKILL.md +11 -0
- package/.claude/skills/sinapse-design/SKILL.md +11 -0
- package/.claude/skills/sinapse-dev/SKILL.md +11 -0
- package/.claude/skills/sinapse-devops/SKILL.md +11 -0
- package/.claude/skills/sinapse-finance/SKILL.md +11 -0
- package/.claude/skills/sinapse-growth/SKILL.md +11 -0
- package/.claude/skills/sinapse-loop/SKILL.md +11 -0
- package/.claude/skills/sinapse-orqx/SKILL.md +11 -0
- package/.claude/skills/sinapse-paidmedia/SKILL.md +11 -0
- package/.claude/skills/sinapse-pm/SKILL.md +11 -0
- package/.claude/skills/sinapse-po/SKILL.md +11 -0
- package/.claude/skills/sinapse-product/SKILL.md +11 -0
- package/.claude/skills/sinapse-qa/SKILL.md +11 -0
- package/.claude/skills/sinapse-research/SKILL.md +11 -0
- package/.claude/skills/sinapse-sm/SKILL.md +11 -0
- package/.claude/skills/sinapse-spec-driven/SKILL.md +11 -0
- package/.claude/skills/sinapse-squad-creator/SKILL.md +11 -0
- package/.claude/skills/sinapse-storytelling/SKILL.md +11 -0
- package/.claude/skills/sinapse-swarm/SKILL.md +11 -0
- package/.claude/skills/sinapse-ux-design-expert/SKILL.md +11 -0
- package/.claude/skills/snps/SKILL.md +11 -0
- package/.claude/skills/snps-orqx/SKILL.md +11 -0
- package/.claude/skills/story-update.md +52 -0
- package/.claude/skills/test-guard.md +41 -0
- package/.codex/agents/ad-copywriter.toml +3 -0
- package/.codex/agents/agent-forger.toml +3 -0
- package/.codex/agents/analyst.toml +3 -0
- package/.codex/agents/animation-interpreter.toml +3 -0
- package/.codex/agents/animation-performance-engineer.toml +3 -0
- package/.codex/agents/animations-orqx.toml +3 -0
- package/.codex/agents/architect.toml +3 -0
- package/.codex/agents/assessment-creator.toml +3 -0
- package/.codex/agents/audience-intelligence.toml +3 -0
- package/.codex/agents/blake-snyder.toml +3 -0
- package/.codex/agents/brand-archetype-strategist.toml +3 -0
- package/.codex/agents/brand-auditor.toml +3 -0
- package/.codex/agents/brand-collateral-designer.toml +3 -0
- package/.codex/agents/brand-compiler.toml +3 -0
- package/.codex/agents/brand-creative-engineer.toml +3 -0
- package/.codex/agents/brand-culture-architect.toml +3 -0
- package/.codex/agents/brand-growth-strategist.toml +3 -0
- package/.codex/agents/brand-identity-designer.toml +3 -0
- package/.codex/agents/brand-motion-vfx.toml +3 -0
- package/.codex/agents/brand-naming-specialist.toml +3 -0
- package/.codex/agents/brand-orqx.toml +3 -0
- package/.codex/agents/brand-positioning-strategist.toml +3 -0
- package/.codex/agents/brand-sonic-designer.toml +3 -0
- package/.codex/agents/brand-strategist.toml +3 -0
- package/.codex/agents/brand-system-architect.toml +3 -0
- package/.codex/agents/brand-voice-writer.toml +3 -0
- package/.codex/agents/brene-brown.toml +3 -0
- package/.codex/agents/budget-controller.toml +3 -0
- package/.codex/agents/campaign-analyst.toml +3 -0
- package/.codex/agents/charlie-munger.toml +3 -0
- package/.codex/agents/claude-mastery-chief.toml +3 -0
- package/.codex/agents/cloning-orqx.toml +3 -0
- package/.codex/agents/cloud-security-engineer.toml +3 -0
- package/.codex/agents/cognitive-extractor.toml +3 -0
- package/.codex/agents/commercial-orqx.toml +3 -0
- package/.codex/agents/competitive-intelligence.toml +3 -0
- package/.codex/agents/compliance-officer.toml +3 -0
- package/.codex/agents/config-engineer.toml +3 -0
- package/.codex/agents/content-analyst.toml +3 -0
- package/.codex/agents/content-capturer.toml +3 -0
- package/.codex/agents/content-engineer.toml +3 -0
- package/.codex/agents/content-governor.toml +3 -0
- package/.codex/agents/content-orqx.toml +3 -0
- package/.codex/agents/content-writer.toml +3 -0
- package/.codex/agents/conversion-writer.toml +3 -0
- package/.codex/agents/copy-editor.toml +3 -0
- package/.codex/agents/copy-orqx.toml +3 -0
- package/.codex/agents/copy-strategist.toml +3 -0
- package/.codex/agents/cost-optimizer.toml +3 -0
- package/.codex/agents/council-orqx.toml +3 -0
- package/.codex/agents/courses-orqx.toml +3 -0
- package/.codex/agents/creative-strategist.toml +3 -0
- package/.codex/agents/cro-persuasion.toml +3 -0
- package/.codex/agents/cro-specialist.toml +3 -0
- package/.codex/agents/cs-business-auditor.toml +3 -0
- package/.codex/agents/cs-client-success.toml +3 -0
- package/.codex/agents/cs-crm-specialist.toml +3 -0
- package/.codex/agents/cs-funnel-architect.toml +3 -0
- package/.codex/agents/cs-lead-generation-strategist.toml +3 -0
- package/.codex/agents/cs-offer-designer.toml +3 -0
- package/.codex/agents/cs-revops-analyst.toml +3 -0
- package/.codex/agents/cs-sales-closer.toml +3 -0
- package/.codex/agents/cs-sales-enablement.toml +3 -0
- package/.codex/agents/css-motion-artist.toml +3 -0
- package/.codex/agents/curriculum-designer.toml +3 -0
- package/.codex/agents/cyber-orqx.toml +3 -0
- package/.codex/agents/dan-harmon.toml +3 -0
- package/.codex/agents/data-engineer.toml +3 -0
- package/.codex/agents/data-synthesizer.toml +3 -0
- package/.codex/agents/deep-researcher.toml +3 -0
- package/.codex/agents/derek-sivers.toml +3 -0
- package/.codex/agents/design-orqx.toml +3 -0
- package/.codex/agents/design-system.toml +3 -0
- package/.codex/agents/developer.toml +3 -0
- package/.codex/agents/devops.toml +3 -0
- package/.codex/agents/direct-response-writer.toml +3 -0
- package/.codex/agents/dx-accessibility-specialist.toml +3 -0
- package/.codex/agents/dx-design-system-architect.toml +3 -0
- package/.codex/agents/dx-frontend-engineer.toml +3 -0
- package/.codex/agents/dx-interaction-designer.toml +3 -0
- package/.codex/agents/dx-performance-engineer.toml +3 -0
- package/.codex/agents/dx-ui-designer.toml +3 -0
- package/.codex/agents/dx-ux-strategist.toml +3 -0
- package/.codex/agents/editorial-strategist.toml +3 -0
- package/.codex/agents/email-sequence-strategist.toml +3 -0
- package/.codex/agents/finance-orqx.toml +3 -0
- package/.codex/agents/fiscal-compliance-br.toml +3 -0
- package/.codex/agents/forecast-strategist.toml +3 -0
- package/.codex/agents/funnel-copywriter.toml +3 -0
- package/.codex/agents/ga-analytics-engineer.toml +3 -0
- package/.codex/agents/ga-campaign-analyst.toml +3 -0
- package/.codex/agents/ga-cro-specialist.toml +3 -0
- package/.codex/agents/ga-data-analyst.toml +3 -0
- package/.codex/agents/ga-growth-hacker.toml +3 -0
- package/.codex/agents/ga-seo-strategist.toml +3 -0
- package/.codex/agents/generative-particle-engineer.toml +3 -0
- package/.codex/agents/google-ads-specialist.toml +3 -0
- package/.codex/agents/growth-orqx.toml +3 -0
- package/.codex/agents/headline-specialist.toml +3 -0
- package/.codex/agents/hooks-architect.toml +3 -0
- package/.codex/agents/incident-responder.toml +3 -0
- package/.codex/agents/joseph-campbell.toml +3 -0
- package/.codex/agents/kb-architect.toml +3 -0
- package/.codex/agents/keith-johnstone.toml +3 -0
- package/.codex/agents/kindra-hall.toml +3 -0
- package/.codex/agents/launch-strategist.toml +3 -0
- package/.codex/agents/lesson-architect.toml +3 -0
- package/.codex/agents/long-form-writer.toml +3 -0
- package/.codex/agents/market-analyst.toml +3 -0
- package/.codex/agents/marshall-ganz.toml +3 -0
- package/.codex/agents/mcp-integrator.toml +3 -0
- package/.codex/agents/meta-ads-specialist.toml +3 -0
- package/.codex/agents/mind-synthesizer.toml +3 -0
- package/.codex/agents/motion-choreographer.toml +3 -0
- package/.codex/agents/nancy-duarte.toml +3 -0
- package/.codex/agents/naval-ravikant.toml +3 -0
- package/.codex/agents/network-security-engineer.toml +3 -0
- package/.codex/agents/oren-klaff.toml +3 -0
- package/.codex/agents/paidmedia-orqx.toml +3 -0
- package/.codex/agents/park-howell.toml +3 -0
- package/.codex/agents/patrick-lencioni.toml +3 -0
- package/.codex/agents/penetration-tester.toml +3 -0
- package/.codex/agents/performance-engineer.toml +3 -0
- package/.codex/agents/persuasion-psychologist.toml +3 -0
- package/.codex/agents/peter-thiel.toml +3 -0
- package/.codex/agents/platform-aesthetic-director.toml +3 -0
- package/.codex/agents/platform-specialist.toml +3 -0
- package/.codex/agents/pm-creative-performance-analyst.toml +3 -0
- package/.codex/agents/pm-youtube-ads-specialist.toml +3 -0
- package/.codex/agents/premium-packaging-strategist.toml +3 -0
- package/.codex/agents/pricing-strategist.toml +3 -0
- package/.codex/agents/product-lead.toml +3 -0
- package/.codex/agents/product-orqx.toml +3 -0
- package/.codex/agents/product-surface-director.toml +3 -0
- package/.codex/agents/production-director.toml +3 -0
- package/.codex/agents/profitability-analyst.toml +3 -0
- package/.codex/agents/project-integrator.toml +3 -0
- package/.codex/agents/project-lead.toml +3 -0
- package/.codex/agents/proof-architect.toml +3 -0
- package/.codex/agents/ps-client-product-manager.toml +3 -0
- package/.codex/agents/ps-delivery-manager.toml +3 -0
- package/.codex/agents/ps-discovery-lead.toml +3 -0
- package/.codex/agents/ps-product-analyst.toml +3 -0
- package/.codex/agents/ps-product-ops-specialist.toml +3 -0
- package/.codex/agents/ps-product-strategist.toml +3 -0
- package/.codex/agents/quality-gate.toml +3 -0
- package/.codex/agents/ray-dalio.toml +3 -0
- package/.codex/agents/reid-hoffman.toml +3 -0
- package/.codex/agents/research-orqx.toml +3 -0
- package/.codex/agents/revenue-analyst.toml +3 -0
- package/.codex/agents/roadmap-sentinel.toml +3 -0
- package/.codex/agents/scroll-narrative-engineer.toml +3 -0
- package/.codex/agents/shader-artist.toml +3 -0
- package/.codex/agents/signal-intelligence.toml +3 -0
- package/.codex/agents/simon-sinek.toml +3 -0
- package/.codex/agents/skill-craftsman.toml +3 -0
- package/.codex/agents/slide-designer.toml +3 -0
- package/.codex/agents/snps-orqx.toml +3 -0
- package/.codex/agents/soc-analyst.toml +3 -0
- package/.codex/agents/sop-extractor.toml +3 -0
- package/.codex/agents/source-hunter.toml +3 -0
- package/.codex/agents/sprint-lead.toml +3 -0
- package/.codex/agents/squad-assembler.toml +3 -0
- package/.codex/agents/squad-creator.toml +3 -0
- package/.codex/agents/storytelling-orqx.toml +3 -0
- package/.codex/agents/swarm-orqx.toml +3 -0
- package/.codex/agents/threat-analyst.toml +3 -0
- package/.codex/agents/threejs-architect.toml +3 -0
- package/.codex/agents/trend-forecaster.toml +3 -0
- package/.codex/agents/ux-design-expert.toml +3 -0
- package/.codex/agents/ux-designer.toml +3 -0
- package/.codex/agents/yvon-chouinard.toml +3 -0
- package/.codex/catalog.json +20 -5
- package/.codex/command-registry.json +94 -0
- package/.codex/config.toml +8 -0
- package/.codex/delegation-matrix.json +39 -25
- package/.codex/delegation-parity.json +46 -41
- package/.codex/hooks/claude-compat.cjs +547 -0
- package/.codex/hooks.json +123 -0
- package/.codex/scripts/resolve-codex-agent.js +30 -1
- package/.codex/scripts/resolve-codex-workflow.js +283 -0
- package/.codex/scripts/sinapse-codex.js +304 -0
- package/.codex/scripts/sync-codex-native.js +581 -0
- package/.codex/scripts/validate-codex-native.js +277 -0
- package/.codex/tasks/onboard-sinapse-codex.md +1 -1
- package/.sinapse-ai/data/entity-registry.yaml +91 -39
- package/.sinapse-ai/install-manifest.yaml +5 -5
- package/.sinapse-ai/product/templates/statusline/agent-badges.json +37 -37
- package/AGENTS.md +5 -4
- package/CHANGELOG.md +23 -7
- package/README.en.md +1 -1
- package/README.md +25 -10
- package/bin/cli.js +8 -1
- package/bin/commands/help.js +3 -2
- package/bin/commands/install.js +79 -53
- package/bin/commands/status.js +4 -3
- package/bin/commands/uninstall.js +247 -29
- package/bin/commands/update.js +38 -23
- package/bin/lib/command-generator.js +25 -3
- package/bin/lib/global-provider-adapters.js +199 -0
- package/bin/lib/provider-parity.js +22 -0
- package/bin/postinstall.js +11 -11
- package/bin/utils/validate-publish.js +43 -10
- package/docs/framework/codex-parity/codex-integration-process.md +6 -7
- package/docs/framework/codex-parity/codex-native-runtime-v2.md +230 -0
- package/docs/framework/codex-parity/codex-parity-program.md +4 -4
- package/docs/framework/codex-parity/codex-total-parity-orchestration-plan.md +1 -1
- package/docs/framework/codex-parity/codex-workflow-task-parity.md +21 -7
- package/docs/framework/react-bits/animations.md +49 -0
- package/docs/framework/react-bits/audit-findings.md +103 -0
- package/docs/framework/react-bits/backgrounds.md +63 -0
- package/docs/framework/react-bits/catalog-summary.json +61 -0
- package/docs/framework/react-bits/components.md +58 -0
- package/docs/framework/react-bits/implementation-playbook.md +161 -0
- package/docs/framework/react-bits/index.md +130 -0
- package/docs/framework/react-bits/inventory.json +9333 -0
- package/docs/framework/react-bits/text-animations.md +41 -0
- package/docs/framework/software-engineering-applicability.md +31 -0
- package/docs/getting-started.md +6 -2
- package/docs/guides/codex-config.md +2 -2
- package/docs/guides/development-setup.md +1 -2
- package/docs/guides/ide-integration.md +6 -6
- package/docs/guides/quality-gates.md +2 -2
- package/docs/ide-integration.md +2 -2
- package/docs/installation/README.md +2 -2
- package/docs/installation/faq.md +1 -1
- package/docs/installation/troubleshooting.md +2 -2
- package/docs/installation/v4-quick-start.md +1 -1
- package/docs/pt/contributing.md +1 -1
- package/docs/pt/guides/development-setup.md +1 -2
- package/docs/pt/guides/quality-gates.md +2 -2
- package/docs/pt/ide-integration.md +6 -6
- package/docs/pt/installation/faq.md +1 -1
- package/docs/pt/installation/troubleshooting.md +2 -3
- package/docs/pt/installation/v4-quick-start.md +1 -2
- package/docs/pt/platforms/claude-code.md +4 -4
- package/docs/sinapse-agent-flows/analyst-system.md +1 -1
- package/docs/sinapse-agent-flows/architect-system.md +1 -1
- package/docs/sinapse-agent-flows/data-engineer-system.md +1 -1
- package/docs/sinapse-agent-flows/dev-system.md +1 -1
- package/docs/sinapse-agent-flows/pm-system.md +1 -1
- package/docs/sinapse-agent-flows/qa-system.md +1 -1
- package/docs/sinapse-agent-flows/sm-system.md +1 -1
- package/docs/sinapse-agent-flows/snps-orqx-system.md +1 -1
- package/docs/sinapse-agent-flows/squad-creator-system.md +2 -2
- package/docs/sinapse-agent-flows/ux-design-expert-system.md +1 -1
- package/package.json +37 -19
- package/packages/engineering-applicability/fixtures.json +52 -0
- package/packages/engineering-applicability/index.js +150 -0
- package/packages/installer/src/config/ide-configs.js +1 -1
- package/packages/installer/src/installer/sinapse-ai-installer.js +359 -2
- package/packages/installer/src/migrations/legacy-claude-agent-command-hashes.json +36 -0
- package/packages/installer/src/migrations/legacy-codex-native-skill-hashes.json +42 -0
- package/packages/installer/src/updater/index.js +51 -13
- package/packages/installer/src/wizard/feedback.js +1 -1
- package/packages/installer/src/wizard/ide-config-generator.js +22 -0
- package/packages/installer/src/wizard/index.js +106 -75
- package/scripts/gen-agent-badges.js +17 -1
- package/scripts/release-readiness.js +9 -3
- package/scripts/research/generate-react-bits-catalog.mjs +206 -0
- package/scripts/sync-provider-adapters.js +203 -0
- package/scripts/validate-codex-command-registry.js +101 -0
- package/scripts/validate-provider-adapters.js +243 -0
- package/squads/claude-code-mastery/agents/skill-craftsman.md +2 -2
- package/squads/claude-code-mastery/knowledge-base/skill-creation-patterns.md +1 -1
- package/squads/squad-animations/knowledge-base/react-bits-operational-guide.md +43 -0
- package/squads/squad-animations/squad.yaml +10 -5
- package/squads/squad-animations/tasks/orchestrate-react-bits-frontend.md +60 -0
- package/squads/squad-design/agents/ux-designer.md +1 -1
- package/.codex/skills/sinapse-orqx/SKILL.md +0 -25
- /package/{.codex → .agents}/skills/sinapse-analyst/SKILL.md +0 -0
- /package/{.codex → .agents}/skills/sinapse-animations/SKILL.md +0 -0
- /package/{.codex → .agents}/skills/sinapse-architect/SKILL.md +0 -0
- /package/{.codex → .agents}/skills/sinapse-brand/SKILL.md +0 -0
- /package/{.codex → .agents}/skills/sinapse-cloning/SKILL.md +0 -0
- /package/{.codex → .agents}/skills/sinapse-commercial/SKILL.md +0 -0
- /package/{.codex → .agents}/skills/sinapse-content/SKILL.md +0 -0
- /package/{.codex → .agents}/skills/sinapse-copy/SKILL.md +0 -0
- /package/{.codex → .agents}/skills/sinapse-council/SKILL.md +0 -0
- /package/{.codex → .agents}/skills/sinapse-courses/SKILL.md +0 -0
- /package/{.codex → .agents}/skills/sinapse-cyber/SKILL.md +0 -0
- /package/{.codex → .agents}/skills/sinapse-data-engineer/SKILL.md +0 -0
- /package/{.codex → .agents}/skills/sinapse-design/SKILL.md +0 -0
- /package/{.codex → .agents}/skills/sinapse-dev/SKILL.md +0 -0
- /package/{.codex → .agents}/skills/sinapse-devops/SKILL.md +0 -0
- /package/{.codex → .agents}/skills/sinapse-finance/SKILL.md +0 -0
- /package/{.codex → .agents}/skills/sinapse-growth/SKILL.md +0 -0
- /package/{.codex → .agents}/skills/sinapse-paidmedia/SKILL.md +0 -0
- /package/{.codex → .agents}/skills/sinapse-pm/SKILL.md +0 -0
- /package/{.codex → .agents}/skills/sinapse-po/SKILL.md +0 -0
- /package/{.codex → .agents}/skills/sinapse-product/SKILL.md +0 -0
- /package/{.codex → .agents}/skills/sinapse-qa/SKILL.md +0 -0
- /package/{.codex → .agents}/skills/sinapse-research/SKILL.md +0 -0
- /package/{.codex → .agents}/skills/sinapse-sm/SKILL.md +0 -0
- /package/{.codex → .agents}/skills/sinapse-squad-creator/SKILL.md +0 -0
- /package/{.codex → .agents}/skills/sinapse-storytelling/SKILL.md +0 -0
- /package/{.codex → .agents}/skills/sinapse-swarm/SKILL.md +0 -0
- /package/{.codex → .agents}/skills/sinapse-ux-design-expert/SKILL.md +0 -0
|
@@ -113,11 +113,40 @@ const STATIC_ALIASES = {
|
|
|
113
113
|
pm: 'project-lead',
|
|
114
114
|
po: 'product-lead',
|
|
115
115
|
sm: 'sprint-lead',
|
|
116
|
+
'sinapse-dev': 'developer',
|
|
117
|
+
'sinapse-qa': 'quality-gate',
|
|
118
|
+
'sinapse-pm': 'project-lead',
|
|
119
|
+
'sinapse-po': 'product-lead',
|
|
120
|
+
'sinapse-sm': 'sprint-lead',
|
|
121
|
+
'sinapse-architect': 'architect',
|
|
122
|
+
'sinapse-analyst': 'analyst',
|
|
123
|
+
'sinapse-data-engineer': 'data-engineer',
|
|
124
|
+
'sinapse-devops': 'devops',
|
|
125
|
+
'sinapse-squad-creator': 'squad-creator',
|
|
126
|
+
'sinapse-ux-design-expert': 'ux-design-expert',
|
|
116
127
|
imperator: 'snps-orqx',
|
|
117
128
|
'sinapse-orqx': 'snps-orqx',
|
|
118
129
|
sinapse: 'snps-orqx',
|
|
119
130
|
snps: 'snps-orqx',
|
|
120
|
-
'claude-orqx': '
|
|
131
|
+
'claude-orqx': 'claude-mastery-chief',
|
|
132
|
+
'sinapse-claude': 'claude-mastery-chief',
|
|
133
|
+
'sinapse-swarm': 'swarm-orqx',
|
|
134
|
+
'sinapse-brand': 'brand-orqx',
|
|
135
|
+
'sinapse-animations': 'animations-orqx',
|
|
136
|
+
'sinapse-cloning': 'cloning-orqx',
|
|
137
|
+
'sinapse-commercial': 'commercial-orqx',
|
|
138
|
+
'sinapse-content': 'content-orqx',
|
|
139
|
+
'sinapse-copy': 'copy-orqx',
|
|
140
|
+
'sinapse-council': 'council-orqx',
|
|
141
|
+
'sinapse-courses': 'courses-orqx',
|
|
142
|
+
'sinapse-cyber': 'cyber-orqx',
|
|
143
|
+
'sinapse-design': 'design-orqx',
|
|
144
|
+
'sinapse-finance': 'finance-orqx',
|
|
145
|
+
'sinapse-growth': 'growth-orqx',
|
|
146
|
+
'sinapse-paidmedia': 'paidmedia-orqx',
|
|
147
|
+
'sinapse-product': 'product-orqx',
|
|
148
|
+
'sinapse-research': 'research-orqx',
|
|
149
|
+
'sinapse-storytelling': 'storytelling-orqx',
|
|
121
150
|
};
|
|
122
151
|
|
|
123
152
|
function resolveAgentId(index, agentInput) {
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
const fs = require('fs');
|
|
5
|
+
const path = require('path');
|
|
6
|
+
const yaml = require('js-yaml');
|
|
7
|
+
|
|
8
|
+
const PROJECT_ROOT = path.resolve(__dirname, '..', '..');
|
|
9
|
+
const SPEC_WORKFLOW_PATH = '.sinapse-ai/development/workflows/spec-pipeline.yaml';
|
|
10
|
+
const TASKS_DIR = '.sinapse-ai/development/tasks';
|
|
11
|
+
const DELEGATION_MATRIX_PATH = '.codex/delegation-matrix.json';
|
|
12
|
+
|
|
13
|
+
const WORKFLOW_ALIASES = Object.freeze({
|
|
14
|
+
spec: 'spec',
|
|
15
|
+
'create-spec': 'spec',
|
|
16
|
+
'spec-pipeline': 'plan',
|
|
17
|
+
plan: 'plan',
|
|
18
|
+
orchestrate: 'orchestrate',
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
const PHASE_ALIASES = Object.freeze({
|
|
22
|
+
critique_1: 'critique',
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
const PHASE_TASK_FALLBACKS = Object.freeze({
|
|
26
|
+
revise: 'spec-write-spec.md',
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
const PHASE_COMMANDS = Object.freeze({
|
|
30
|
+
gather: { agent: 'sinapse-pm', command: 'gather-requirements' },
|
|
31
|
+
assess: { agent: 'sinapse-architect', command: 'assess-complexity' },
|
|
32
|
+
research: { agent: 'sinapse-analyst', command: 'research-deps' },
|
|
33
|
+
spec: { agent: 'sinapse-pm', command: 'write-spec' },
|
|
34
|
+
clarify: { agent: 'sinapse-pm', command: 'clarify-spec' },
|
|
35
|
+
critique: { agent: 'sinapse-qa', command: 'critique-spec' },
|
|
36
|
+
critique_1: { agent: 'sinapse-qa', command: 'critique-spec' },
|
|
37
|
+
revise: { agent: 'sinapse-pm', command: 'write-spec' },
|
|
38
|
+
critique_2: { agent: 'sinapse-qa', command: 'critique-spec' },
|
|
39
|
+
plan: { agent: 'sinapse-architect', command: 'create-plan' },
|
|
40
|
+
analyze: { agent: 'sinapse-qa', command: 'analyze-spec' },
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
function projectFile(projectRoot, relativePath) {
|
|
44
|
+
const root = path.resolve(projectRoot);
|
|
45
|
+
const absolute = path.resolve(root, relativePath);
|
|
46
|
+
if (absolute !== root && !absolute.startsWith(`${root}${path.sep}`)) {
|
|
47
|
+
throw new Error(`Path escapes project root: ${relativePath}`);
|
|
48
|
+
}
|
|
49
|
+
if (!fs.existsSync(absolute) || !fs.statSync(absolute).isFile()) {
|
|
50
|
+
throw new Error(`Missing workflow dependency: ${relativePath}`);
|
|
51
|
+
}
|
|
52
|
+
return absolute;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function loadYamlFile(projectRoot, relativePath) {
|
|
56
|
+
const raw = fs.readFileSync(projectFile(projectRoot, relativePath), 'utf8');
|
|
57
|
+
return yaml.load(raw);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function extractAutoClaudeContract(taskPath) {
|
|
61
|
+
const raw = fs.readFileSync(taskPath, 'utf8');
|
|
62
|
+
const fencedYaml = /```ya?ml\s*([\s\S]*?)```/gi;
|
|
63
|
+
let match;
|
|
64
|
+
|
|
65
|
+
while ((match = fencedYaml.exec(raw)) !== null) {
|
|
66
|
+
try {
|
|
67
|
+
const document = yaml.load(match[1]);
|
|
68
|
+
if (document && document.autoClaude) {
|
|
69
|
+
return document.autoClaude;
|
|
70
|
+
}
|
|
71
|
+
} catch {
|
|
72
|
+
// Keep looking: task files may contain unrelated illustrative YAML blocks.
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
function normalizeWorkflowName(value) {
|
|
80
|
+
const normalized = String(value || '').trim().toLowerCase();
|
|
81
|
+
const workflowName = WORKFLOW_ALIASES[normalized];
|
|
82
|
+
if (!workflowName) {
|
|
83
|
+
throw new Error(`Unknown Codex workflow "${value}"`);
|
|
84
|
+
}
|
|
85
|
+
return workflowName;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function normalizeComplexity(value) {
|
|
89
|
+
const normalized = String(value || 'STANDARD').trim().toUpperCase();
|
|
90
|
+
if (!['SIMPLE', 'STANDARD', 'COMPLEX'].includes(normalized)) {
|
|
91
|
+
throw new Error(`Unknown complexity "${value}"`);
|
|
92
|
+
}
|
|
93
|
+
return normalized;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
function loadSpecWorkflow(projectRoot = PROJECT_ROOT) {
|
|
97
|
+
const document = loadYamlFile(projectRoot, SPEC_WORKFLOW_PATH);
|
|
98
|
+
if (!document || !document.workflow) {
|
|
99
|
+
throw new Error(`Invalid workflow document: ${SPEC_WORKFLOW_PATH}`);
|
|
100
|
+
}
|
|
101
|
+
return document.workflow;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
function resolvePhaseDefinition(workflow, phaseId) {
|
|
105
|
+
const sourceStep = PHASE_ALIASES[phaseId] || phaseId;
|
|
106
|
+
const definition = (workflow.sequence || []).find(
|
|
107
|
+
(candidate) => candidate.step === sourceStep,
|
|
108
|
+
);
|
|
109
|
+
if (!definition) {
|
|
110
|
+
throw new Error(`Workflow phase has no sequence definition: ${phaseId}`);
|
|
111
|
+
}
|
|
112
|
+
return definition;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
function buildPhase(workflow, phaseId, projectRoot) {
|
|
116
|
+
const definition = resolvePhaseDefinition(workflow, phaseId);
|
|
117
|
+
const taskFile =
|
|
118
|
+
definition.task ||
|
|
119
|
+
PHASE_TASK_FALLBACKS[phaseId] ||
|
|
120
|
+
PHASE_TASK_FALLBACKS[definition.step];
|
|
121
|
+
|
|
122
|
+
if (!taskFile) {
|
|
123
|
+
throw new Error(`Workflow phase has no task contract: ${phaseId}`);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
const taskTarget = `${TASKS_DIR}/${taskFile}`;
|
|
127
|
+
const contract = extractAutoClaudeContract(projectFile(projectRoot, taskTarget));
|
|
128
|
+
if (!contract) {
|
|
129
|
+
throw new Error(`Task has no autoClaude contract: ${taskTarget}`);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
const command = PHASE_COMMANDS[phaseId] || PHASE_COMMANDS[definition.step];
|
|
133
|
+
if (!command) {
|
|
134
|
+
throw new Error(`Workflow phase has no Codex command mapping: ${phaseId}`);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
return {
|
|
138
|
+
id: phaseId,
|
|
139
|
+
sourceStep: definition.step,
|
|
140
|
+
phase: definition.phase,
|
|
141
|
+
name: definition.phase_name,
|
|
142
|
+
agent: command.agent,
|
|
143
|
+
command: command.command,
|
|
144
|
+
task: taskTarget,
|
|
145
|
+
condition: definition.condition || null,
|
|
146
|
+
skipIf: definition.skip_if || null,
|
|
147
|
+
gate: Boolean(definition.gate || contract.verification?.type === 'gate'),
|
|
148
|
+
readOnly: Boolean(contract.readOnly || definition.read_only),
|
|
149
|
+
elicit: Boolean(contract.elicit),
|
|
150
|
+
deterministic: Boolean(contract.deterministic),
|
|
151
|
+
inputs: contract.inputs || [],
|
|
152
|
+
outputs: contract.outputs || [],
|
|
153
|
+
verification: contract.verification || null,
|
|
154
|
+
taskFirst: {
|
|
155
|
+
inputs: true,
|
|
156
|
+
outputs: true,
|
|
157
|
+
verification: true,
|
|
158
|
+
},
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
function loadDeliveryPreparation(projectRoot = PROJECT_ROOT) {
|
|
163
|
+
const matrixPath = projectFile(projectRoot, DELEGATION_MATRIX_PATH);
|
|
164
|
+
const matrix = JSON.parse(fs.readFileSync(matrixPath, 'utf8'));
|
|
165
|
+
const route = matrix.routes?.['framework-story-delivery'];
|
|
166
|
+
if (!route) {
|
|
167
|
+
throw new Error('Missing framework-story-delivery delegation route');
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
return {
|
|
171
|
+
routeId: 'framework-story-delivery',
|
|
172
|
+
source: DELEGATION_MATRIX_PATH,
|
|
173
|
+
preparationOnly: true,
|
|
174
|
+
chain: route.delegationChain.map((step) => ({
|
|
175
|
+
from: step.from,
|
|
176
|
+
to: step.to,
|
|
177
|
+
agent: step.to,
|
|
178
|
+
command: step.command,
|
|
179
|
+
target: step.path,
|
|
180
|
+
})),
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
function resolveCodexWorkflow(name, options = {}) {
|
|
185
|
+
const projectRoot = options.projectRoot || PROJECT_ROOT;
|
|
186
|
+
const workflowName = normalizeWorkflowName(name);
|
|
187
|
+
const complexity = normalizeComplexity(options.complexity);
|
|
188
|
+
const workflow = loadSpecWorkflow(projectRoot);
|
|
189
|
+
const profile = workflow.phases?.[complexity];
|
|
190
|
+
if (!profile || !Array.isArray(profile.steps)) {
|
|
191
|
+
throw new Error(`Workflow has no ${complexity} phase profile`);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
let phaseIds = [...profile.steps];
|
|
195
|
+
if (workflowName === 'spec') {
|
|
196
|
+
const firstPlanPhase = phaseIds.findIndex((phase) =>
|
|
197
|
+
['plan', 'analyze'].includes(phase),
|
|
198
|
+
);
|
|
199
|
+
if (firstPlanPhase >= 0) {
|
|
200
|
+
phaseIds = phaseIds.slice(0, firstPlanPhase);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
const result = {
|
|
205
|
+
workflowId: workflow.id,
|
|
206
|
+
request: workflowName,
|
|
207
|
+
subject: options.subject ? String(options.subject) : null,
|
|
208
|
+
complexity,
|
|
209
|
+
source: SPEC_WORKFLOW_PATH,
|
|
210
|
+
sourceVersion: workflow.version,
|
|
211
|
+
preparationOnly: true,
|
|
212
|
+
taskFirst: true,
|
|
213
|
+
phases: phaseIds.map((phaseId) =>
|
|
214
|
+
buildPhase(workflow, phaseId, projectRoot),
|
|
215
|
+
),
|
|
216
|
+
};
|
|
217
|
+
|
|
218
|
+
if (workflowName === 'orchestrate') {
|
|
219
|
+
result.delivery = loadDeliveryPreparation(projectRoot);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
return result;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
function parseArgs(argv = process.argv.slice(2)) {
|
|
226
|
+
const positional = [];
|
|
227
|
+
let complexity = 'STANDARD';
|
|
228
|
+
|
|
229
|
+
for (let index = 0; index < argv.length; index += 1) {
|
|
230
|
+
const argument = argv[index];
|
|
231
|
+
if (argument === '--complexity') {
|
|
232
|
+
complexity = argv[index + 1];
|
|
233
|
+
index += 1;
|
|
234
|
+
} else if (argument.startsWith('--complexity=')) {
|
|
235
|
+
complexity = argument.slice('--complexity='.length);
|
|
236
|
+
} else if (!argument.startsWith('--')) {
|
|
237
|
+
positional.push(argument);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
return { name: positional[0], complexity };
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
function main() {
|
|
245
|
+
const args = parseArgs();
|
|
246
|
+
if (!args.name) {
|
|
247
|
+
console.error(
|
|
248
|
+
'Usage: node .codex/scripts/resolve-codex-workflow.js <spec|plan|orchestrate> [--complexity STANDARD]',
|
|
249
|
+
);
|
|
250
|
+
process.exitCode = 1;
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
try {
|
|
255
|
+
console.log(
|
|
256
|
+
JSON.stringify(
|
|
257
|
+
resolveCodexWorkflow(args.name, { complexity: args.complexity }),
|
|
258
|
+
null,
|
|
259
|
+
2,
|
|
260
|
+
),
|
|
261
|
+
);
|
|
262
|
+
} catch (error) {
|
|
263
|
+
console.error(error.message);
|
|
264
|
+
process.exitCode = 1;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
if (require.main === module) {
|
|
269
|
+
main();
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
module.exports = {
|
|
273
|
+
PROJECT_ROOT,
|
|
274
|
+
SPEC_WORKFLOW_PATH,
|
|
275
|
+
DELEGATION_MATRIX_PATH,
|
|
276
|
+
extractAutoClaudeContract,
|
|
277
|
+
normalizeWorkflowName,
|
|
278
|
+
normalizeComplexity,
|
|
279
|
+
loadSpecWorkflow,
|
|
280
|
+
loadDeliveryPreparation,
|
|
281
|
+
resolveCodexWorkflow,
|
|
282
|
+
parseArgs,
|
|
283
|
+
};
|
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
const fs = require('fs');
|
|
5
|
+
const path = require('path');
|
|
6
|
+
|
|
7
|
+
const {
|
|
8
|
+
buildEcosystemStats,
|
|
9
|
+
} = require('./resolve-codex-agent');
|
|
10
|
+
const {
|
|
11
|
+
loadCommandRegistry,
|
|
12
|
+
resolveCodexAgentEntry,
|
|
13
|
+
resolveCodexCommand,
|
|
14
|
+
} = require('./resolve-codex-command');
|
|
15
|
+
const {
|
|
16
|
+
resolveCodexWorkflow,
|
|
17
|
+
} = require('./resolve-codex-workflow');
|
|
18
|
+
|
|
19
|
+
const DISTRIBUTION_ROOT = path.resolve(__dirname, '..', '..');
|
|
20
|
+
|
|
21
|
+
function isSinapseProject(candidate) {
|
|
22
|
+
return relativeFileExists(candidate, '.codex/catalog.json') &&
|
|
23
|
+
relativeFileExists(candidate, '.sinapse-ai/constitution.md');
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function detectProjectRoot(cwd = process.cwd()) {
|
|
27
|
+
let current = path.resolve(cwd);
|
|
28
|
+
while (true) {
|
|
29
|
+
if (isSinapseProject(current)) return current;
|
|
30
|
+
const parent = path.dirname(current);
|
|
31
|
+
if (parent === current) break;
|
|
32
|
+
current = parent;
|
|
33
|
+
}
|
|
34
|
+
return DISTRIBUTION_ROOT;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const PROJECT_ROOT = detectProjectRoot();
|
|
38
|
+
const LOOP_MAX_ITERATIONS = 3;
|
|
39
|
+
const LOOP_STATE_PATH = '.sinapse/workflow-state/codex-loop.json';
|
|
40
|
+
const WORKFLOW_SKILLS = Object.freeze([
|
|
41
|
+
'sinapse-orqx',
|
|
42
|
+
'sinapse-spec-driven',
|
|
43
|
+
'sinapse-loop',
|
|
44
|
+
]);
|
|
45
|
+
|
|
46
|
+
function relativeFileExists(projectRoot, relativePath) {
|
|
47
|
+
try {
|
|
48
|
+
return fs.statSync(path.join(projectRoot, relativePath)).isFile();
|
|
49
|
+
} catch {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function loadJson(projectRoot, relativePath) {
|
|
55
|
+
return JSON.parse(fs.readFileSync(path.join(projectRoot, relativePath), 'utf8'));
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function countRegistryCommands(registry) {
|
|
59
|
+
return Object.values(registry.agents || {}).reduce(
|
|
60
|
+
(total, agent) => total + Object.keys(agent.commands || {}).length,
|
|
61
|
+
0,
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function countAgentSurfaces(projectRoot) {
|
|
66
|
+
const agentsDir = path.join(projectRoot, '.codex', 'agents');
|
|
67
|
+
const entries = fs.readdirSync(agentsDir);
|
|
68
|
+
return {
|
|
69
|
+
markdown: entries.filter((entry) => entry.endsWith('.md')).length,
|
|
70
|
+
toml: entries.filter((entry) => entry.endsWith('.toml')).length,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
function buildDoctorReport(projectRoot = PROJECT_ROOT) {
|
|
75
|
+
const registry = loadCommandRegistry(projectRoot);
|
|
76
|
+
const delegationMatrix = loadJson(projectRoot, '.codex/delegation-matrix.json');
|
|
77
|
+
const delegationParity = loadJson(projectRoot, '.codex/delegation-parity.json');
|
|
78
|
+
const agentSurfaces = countAgentSurfaces(projectRoot);
|
|
79
|
+
const skills = WORKFLOW_SKILLS.map((skillId) => ({
|
|
80
|
+
skillId,
|
|
81
|
+
native: relativeFileExists(
|
|
82
|
+
projectRoot,
|
|
83
|
+
`.agents/skills/${skillId}/SKILL.md`,
|
|
84
|
+
),
|
|
85
|
+
}));
|
|
86
|
+
const delegationEquivalent =
|
|
87
|
+
JSON.stringify(delegationMatrix) === JSON.stringify(delegationParity);
|
|
88
|
+
|
|
89
|
+
const checks = {
|
|
90
|
+
commandRegistry: true,
|
|
91
|
+
codexConfig: relativeFileExists(projectRoot, '.codex/config.toml'),
|
|
92
|
+
codexHooks: relativeFileExists(projectRoot, '.codex/hooks.json'),
|
|
93
|
+
delegationEquivalent,
|
|
94
|
+
nativeAgentParity: agentSurfaces.markdown === agentSurfaces.toml,
|
|
95
|
+
nativeWorkflowSkills: skills.every((skill) => skill.native),
|
|
96
|
+
workflowResolver: relativeFileExists(
|
|
97
|
+
projectRoot,
|
|
98
|
+
'.codex/scripts/resolve-codex-workflow.js',
|
|
99
|
+
),
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
return {
|
|
103
|
+
ok: Object.values(checks).every(Boolean),
|
|
104
|
+
runtime: 'native-session-preparation',
|
|
105
|
+
preparationOnly: true,
|
|
106
|
+
checks,
|
|
107
|
+
metrics: {
|
|
108
|
+
ecosystem: buildEcosystemStats(projectRoot),
|
|
109
|
+
agentSurfaces,
|
|
110
|
+
registryAgents: Object.keys(registry.agents || {}).length,
|
|
111
|
+
registryCommands: countRegistryCommands(registry),
|
|
112
|
+
workflowSkills: skills.length,
|
|
113
|
+
},
|
|
114
|
+
skills,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
function inactiveLoopStatus() {
|
|
119
|
+
return {
|
|
120
|
+
optIn: true,
|
|
121
|
+
active: false,
|
|
122
|
+
currentIteration: 0,
|
|
123
|
+
maxIterations: LOOP_MAX_ITERATIONS,
|
|
124
|
+
completionCriterionRequired: true,
|
|
125
|
+
statePath: LOOP_STATE_PATH,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
function loopStateFile(projectRoot = PROJECT_ROOT) {
|
|
130
|
+
return path.join(projectRoot, LOOP_STATE_PATH);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
function buildLoopStatus(projectRoot = null) {
|
|
134
|
+
if (!projectRoot || !fs.existsSync(loopStateFile(projectRoot))) return inactiveLoopStatus();
|
|
135
|
+
const state = JSON.parse(fs.readFileSync(loopStateFile(projectRoot), 'utf8'));
|
|
136
|
+
return { ...inactiveLoopStatus(), ...state };
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
function persistLoopState(projectRoot, state) {
|
|
140
|
+
const stateFile = loopStateFile(projectRoot);
|
|
141
|
+
fs.mkdirSync(path.dirname(stateFile), { recursive: true });
|
|
142
|
+
fs.writeFileSync(stateFile, `${JSON.stringify(state, null, 2)}\n`, 'utf8');
|
|
143
|
+
return state;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
function prepareLoop(completionCriterion, options = {}) {
|
|
147
|
+
const criterion = String(completionCriterion || '').trim();
|
|
148
|
+
if (!criterion) {
|
|
149
|
+
throw new Error('Loop preparation requires a completion criterion');
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
const state = {
|
|
153
|
+
...inactiveLoopStatus(),
|
|
154
|
+
active: true,
|
|
155
|
+
completionCriterion: criterion,
|
|
156
|
+
startedAt: new Date().toISOString(),
|
|
157
|
+
phases: ['inspect', 'delegate', 'verify'],
|
|
158
|
+
stopConditions: [
|
|
159
|
+
'completion-criterion-met',
|
|
160
|
+
'max-iterations-reached',
|
|
161
|
+
'blocked',
|
|
162
|
+
'user-stop',
|
|
163
|
+
],
|
|
164
|
+
};
|
|
165
|
+
return options.persist
|
|
166
|
+
? persistLoopState(options.projectRoot || PROJECT_ROOT, state)
|
|
167
|
+
: state;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
function advanceLoop(projectRoot = PROJECT_ROOT, outcome = 'continue') {
|
|
171
|
+
const normalizedOutcome = String(outcome || '').trim().toLowerCase();
|
|
172
|
+
if (!['continue', 'complete', 'blocked', 'user-stop'].includes(normalizedOutcome)) {
|
|
173
|
+
throw new Error(`Unknown loop outcome "${outcome}"`);
|
|
174
|
+
}
|
|
175
|
+
const current = buildLoopStatus(projectRoot);
|
|
176
|
+
if (!current.active || !current.completionCriterion) {
|
|
177
|
+
throw new Error('No active SINAPSE loop; run loop prepare first');
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
const currentIteration = Number(current.currentIteration || 0) + 1;
|
|
181
|
+
const reachedLimit = currentIteration >= LOOP_MAX_ITERATIONS;
|
|
182
|
+
const stopReason = normalizedOutcome === 'complete'
|
|
183
|
+
? 'completion-criterion-met'
|
|
184
|
+
: normalizedOutcome === 'blocked'
|
|
185
|
+
? 'blocked'
|
|
186
|
+
: normalizedOutcome === 'user-stop'
|
|
187
|
+
? 'user-stop'
|
|
188
|
+
: reachedLimit
|
|
189
|
+
? 'max-iterations-reached'
|
|
190
|
+
: null;
|
|
191
|
+
const next = {
|
|
192
|
+
...current,
|
|
193
|
+
active: !stopReason,
|
|
194
|
+
currentIteration,
|
|
195
|
+
lastOutcome: normalizedOutcome,
|
|
196
|
+
stopReason,
|
|
197
|
+
updatedAt: new Date().toISOString(),
|
|
198
|
+
};
|
|
199
|
+
return persistLoopState(projectRoot, next);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
function parseArgs(argv = process.argv.slice(2)) {
|
|
203
|
+
const positional = [];
|
|
204
|
+
const options = {};
|
|
205
|
+
|
|
206
|
+
for (let index = 0; index < argv.length; index += 1) {
|
|
207
|
+
const argument = argv[index];
|
|
208
|
+
if (argument === '--complexity') {
|
|
209
|
+
options.complexity = argv[index + 1];
|
|
210
|
+
index += 1;
|
|
211
|
+
} else if (argument.startsWith('--complexity=')) {
|
|
212
|
+
options.complexity = argument.slice('--complexity='.length);
|
|
213
|
+
} else if (argument === '--criterion') {
|
|
214
|
+
options.criterion = argv[index + 1];
|
|
215
|
+
index += 1;
|
|
216
|
+
} else if (argument.startsWith('--criterion=')) {
|
|
217
|
+
options.criterion = argument.slice('--criterion='.length);
|
|
218
|
+
} else if (argument === '--outcome') {
|
|
219
|
+
options.outcome = argv[index + 1];
|
|
220
|
+
index += 1;
|
|
221
|
+
} else if (argument.startsWith('--outcome=')) {
|
|
222
|
+
options.outcome = argument.slice('--outcome='.length);
|
|
223
|
+
} else if (!argument.startsWith('--')) {
|
|
224
|
+
positional.push(argument);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
return { positional, options };
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
function resolveRequest(argv = process.argv.slice(2), projectRoot = PROJECT_ROOT) {
|
|
232
|
+
const { positional, options } = parseArgs(argv);
|
|
233
|
+
const [operation, first, second] = positional;
|
|
234
|
+
|
|
235
|
+
switch (operation) {
|
|
236
|
+
case 'doctor':
|
|
237
|
+
return buildDoctorReport(projectRoot);
|
|
238
|
+
case 'agent':
|
|
239
|
+
if (!first) throw new Error('Agent id is required');
|
|
240
|
+
return resolveCodexAgentEntry(first, projectRoot);
|
|
241
|
+
case 'command':
|
|
242
|
+
if (!first || !second) {
|
|
243
|
+
throw new Error('Agent id and command are required');
|
|
244
|
+
}
|
|
245
|
+
return resolveCodexCommand(first, second, projectRoot);
|
|
246
|
+
case 'workflow':
|
|
247
|
+
if (!first) throw new Error('Workflow name is required');
|
|
248
|
+
return resolveCodexWorkflow(first, {
|
|
249
|
+
complexity: options.complexity,
|
|
250
|
+
projectRoot,
|
|
251
|
+
subject: second,
|
|
252
|
+
});
|
|
253
|
+
case 'spec':
|
|
254
|
+
case 'plan':
|
|
255
|
+
case 'orchestrate':
|
|
256
|
+
return resolveCodexWorkflow(operation, {
|
|
257
|
+
complexity: options.complexity,
|
|
258
|
+
projectRoot,
|
|
259
|
+
subject: first,
|
|
260
|
+
});
|
|
261
|
+
case 'loop':
|
|
262
|
+
if (!first || first === 'status') return buildLoopStatus(projectRoot);
|
|
263
|
+
if (first === 'prepare') {
|
|
264
|
+
return prepareLoop(options.criterion, { persist: true, projectRoot });
|
|
265
|
+
}
|
|
266
|
+
if (first === 'advance') return advanceLoop(projectRoot, options.outcome);
|
|
267
|
+
throw new Error(`Unknown loop operation "${first}"`);
|
|
268
|
+
default:
|
|
269
|
+
throw new Error(
|
|
270
|
+
'Usage: sinapse-codex <doctor|agent|command|workflow|spec|plan|orchestrate|loop> [...args]',
|
|
271
|
+
);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
function main() {
|
|
276
|
+
try {
|
|
277
|
+
console.log(JSON.stringify(resolveRequest(), null, 2));
|
|
278
|
+
} catch (error) {
|
|
279
|
+
console.error(error.message);
|
|
280
|
+
process.exitCode = 1;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
if (require.main === module) {
|
|
285
|
+
main();
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
module.exports = {
|
|
289
|
+
PROJECT_ROOT,
|
|
290
|
+
DISTRIBUTION_ROOT,
|
|
291
|
+
LOOP_MAX_ITERATIONS,
|
|
292
|
+
LOOP_STATE_PATH,
|
|
293
|
+
WORKFLOW_SKILLS,
|
|
294
|
+
isSinapseProject,
|
|
295
|
+
detectProjectRoot,
|
|
296
|
+
countRegistryCommands,
|
|
297
|
+
countAgentSurfaces,
|
|
298
|
+
buildDoctorReport,
|
|
299
|
+
buildLoopStatus,
|
|
300
|
+
prepareLoop,
|
|
301
|
+
advanceLoop,
|
|
302
|
+
parseArgs,
|
|
303
|
+
resolveRequest,
|
|
304
|
+
};
|