sinapse-ai 1.23.0 → 1.25.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/.agents/skills/sinapse/SKILL.md +10 -0
- package/.agents/skills/sinapse-agent/SKILL.md +22 -0
- package/.agents/skills/sinapse-analyst/SKILL.md +29 -0
- package/.agents/skills/sinapse-animations/SKILL.md +28 -0
- package/.agents/skills/sinapse-architect/SKILL.md +31 -0
- package/.agents/skills/sinapse-brand/SKILL.md +28 -0
- package/.agents/skills/sinapse-claude/SKILL.md +28 -0
- package/.agents/skills/sinapse-cloning/SKILL.md +28 -0
- package/.agents/skills/sinapse-commercial/SKILL.md +28 -0
- package/.agents/skills/sinapse-content/SKILL.md +28 -0
- package/.agents/skills/sinapse-copy/SKILL.md +28 -0
- package/.agents/skills/sinapse-council/SKILL.md +28 -0
- package/.agents/skills/sinapse-courses/SKILL.md +28 -0
- package/.agents/skills/sinapse-cyber/SKILL.md +28 -0
- package/.agents/skills/sinapse-data-engineer/SKILL.md +31 -0
- package/.agents/skills/sinapse-design/SKILL.md +28 -0
- package/.agents/skills/sinapse-dev/SKILL.md +31 -0
- package/.agents/skills/sinapse-devops/SKILL.md +31 -0
- package/.agents/skills/sinapse-finance/SKILL.md +28 -0
- package/.agents/skills/sinapse-growth/SKILL.md +28 -0
- package/.agents/skills/sinapse-loop/SKILL.md +35 -0
- package/.agents/skills/sinapse-orqx/SKILL.md +44 -0
- package/.agents/skills/sinapse-paidmedia/SKILL.md +28 -0
- package/.agents/skills/sinapse-pm/SKILL.md +31 -0
- package/.agents/skills/sinapse-po/SKILL.md +31 -0
- package/.agents/skills/sinapse-product/SKILL.md +28 -0
- package/.agents/skills/sinapse-qa/SKILL.md +31 -0
- package/.agents/skills/sinapse-research/SKILL.md +28 -0
- package/.agents/skills/sinapse-sm/SKILL.md +27 -0
- package/.agents/skills/sinapse-spec-driven/SKILL.md +35 -0
- package/.agents/skills/sinapse-squad-creator/SKILL.md +31 -0
- package/.agents/skills/sinapse-storytelling/SKILL.md +28 -0
- package/.agents/skills/sinapse-swarm/SKILL.md +28 -0
- package/.agents/skills/sinapse-ux-design-expert/SKILL.md +24 -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/mandatory-delegation-reference.md +1 -1
- package/.claude/rules/mandatory-delegation.md +1 -1
- package/.claude/rules/software-engineering-applicability.md +13 -0
- package/.claude/rules/squad-awareness.md +1 -1
- package/.claude/rules/token-economy.md +1 -1
- 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 +19 -4
- 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 +309 -0
- package/.codex/scripts/sync-codex-native.js +614 -0
- package/.codex/scripts/validate-codex-native.js +287 -0
- package/.codex/skills/react-bits-frontend/SKILL.md +66 -0
- package/.codex/skills/react-bits-frontend/agents/openai.yaml +4 -0
- package/.codex/skills/react-bits-frontend/references/corpus-map.md +29 -0
- package/.codex/skills/sinapse/SKILL.md +10 -0
- package/.codex/skills/sinapse-agent/SKILL.md +22 -0
- package/.codex/skills/sinapse-claude/SKILL.md +1 -1
- package/.codex/skills/sinapse-loop/SKILL.md +35 -0
- package/.codex/skills/sinapse-orqx/SKILL.md +33 -14
- package/.codex/skills/sinapse-spec-driven/SKILL.md +35 -0
- package/.codex/skills/snps/SKILL.md +10 -0
- package/.codex/skills/snps-orqx/SKILL.md +10 -0
- package/.sinapse-ai/data/entity-registry.yaml +57 -31
- package/.sinapse-ai/development/agents/snps-orqx.md +14 -1
- package/.sinapse-ai/install-manifest.yaml +16 -12
- package/.sinapse-ai/product/templates/statusline/agent-badges.json +37 -37
- package/.sinapse-ai/product/templates/statusline/track-agent-clear.cjs +22 -3
- package/.sinapse-ai/product/templates/statusline/track-agent.cjs +94 -7
- package/.sinapse-ai/product/templates/statusline/track-delegation.cjs +162 -0
- package/AGENTS.md +5 -4
- package/CHANGELOG.md +38 -2
- package/README.en.md +1 -1
- package/README.md +25 -10
- package/bin/commands/install.js +56 -41
- package/bin/commands/uninstall.js +57 -4
- package/bin/commands/update.js +32 -21
- package/bin/lib/command-generator.js +25 -3
- package/bin/lib/global-provider-adapters.js +136 -0
- package/bin/lib/setup-statusline.js +43 -12
- package/bin/utils/validate-publish.js +43 -10
- package/docs/framework/codex-parity/codex-native-runtime-v2.md +230 -0
- 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/installation/README.md +2 -2
- package/package.json +18 -5
- package/packages/engineering-applicability/fixtures.json +52 -0
- package/packages/engineering-applicability/index.js +150 -0
- package/packages/installer/src/installer/sinapse-ai-installer.js +87 -2
- package/packages/installer/src/updater/index.js +34 -13
- package/packages/installer/src/wizard/feedback.js +1 -1
- package/packages/installer/src/wizard/ide-config-generator.js +26 -0
- package/packages/installer/src/wizard/index.js +101 -74
- 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-provider-adapters.js +127 -0
- 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
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# React Bits - TextAnimations
|
|
2
|
+
|
|
3
|
+
> Snapshot oficial: `3acbd54115330a42e39f63dda2d4859e998b6684` (2026-07-14T17:21:39+03:00). Total nesta categoria: **23**.
|
|
4
|
+
|
|
5
|
+
Cada item abaixo aponta para a documentacao e para o codigo TypeScript/CSS oficial fixado no commit pesquisado.
|
|
6
|
+
|
|
7
|
+
| Componente | O que faz | Dependencias | Props publicas | Variantes |
|
|
8
|
+
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------- | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- |
|
|
9
|
+
| [ASCIIText](https://reactbits.dev/text-animations/ascii-text) ([fonte](https://github.com/DavidHDev/react-bits/tree/3acbd54115330a42e39f63dda2d4859e998b6684/src/ts-default/TextAnimations/ASCIIText)) | Renders text with an animated ASCII background for a retro feel. | `three@^0.180.0` | `text`, `enableWaves`, `asciiFontSize`, `textFontSize`, `planeBaseHeight`, `textColor`, `strokeColor` | JS-CSS, JS-TW, TS-CSS, TS-TW |
|
|
10
|
+
| [BlurText](https://reactbits.dev/text-animations/blur-text) ([fonte](https://github.com/DavidHDev/react-bits/tree/3acbd54115330a42e39f63dda2d4859e998b6684/src/ts-default/TextAnimations/BlurText)) | Text starts blurred then crisply resolves for a soft-focus reveal effect. | `motion@^12.23.12` | `text`, `animateBy`, `direction`, `delay`, `stepDuration`, `threshold`, `rootMargin`, `onAnimationComplete` | JS-CSS, JS-TW, TS-CSS, TS-TW |
|
|
11
|
+
| [CircularText](https://reactbits.dev/text-animations/circular-text) ([fonte](https://github.com/DavidHDev/react-bits/tree/3acbd54115330a42e39f63dda2d4859e998b6684/src/ts-default/TextAnimations/CircularText)) | Layouts characters around a circle with optional rotation animation. | `motion@^12.23.12` | `text`, `spinDuration`, `onHover`, `className` | JS-CSS, JS-TW, TS-CSS, TS-TW |
|
|
12
|
+
| [CountUp](https://reactbits.dev/text-animations/count-up) ([fonte](https://github.com/DavidHDev/react-bits/tree/3acbd54115330a42e39f63dda2d4859e998b6684/src/ts-default/TextAnimations/CountUp)) | Animated number counter supporting formatting and decimals. | `motion@^12.23.12` | `to`, `from`, `direction`, `delay`, `duration`, `className`, `startWhen`, `separator`, `onStart`, `onEnd` | JS-CSS, JS-TW, TS-CSS, TS-TW |
|
|
13
|
+
| [CurvedLoop](https://reactbits.dev/text-animations/curved-loop) ([fonte](https://github.com/DavidHDev/react-bits/tree/3acbd54115330a42e39f63dda2d4859e998b6684/src/ts-default/TextAnimations/CurvedLoop)) | Flowing looping text path along a customizable curve with drag interaction. | `none` | `marqueeText`, `speed`, `className`, `curveAmount`, `direction`, `interactive` | JS-CSS, JS-TW, TS-CSS, TS-TW |
|
|
14
|
+
| [DecryptedText](https://reactbits.dev/text-animations/decrypted-text) ([fonte](https://github.com/DavidHDev/react-bits/tree/3acbd54115330a42e39f63dda2d4859e998b6684/src/ts-default/TextAnimations/DecryptedText)) | Hacker-style decryption cycling random glyphs until resolving to real text. | `motion@^12.23.12` | `text`, `speed`, `maxIterations`, `sequential`, `revealDirection`, `useOriginalCharsOnly`, `className`, `parentClassName`, `encryptedClassName`, `animateOn`, `clickMode` | JS-CSS, JS-TW, TS-CSS, TS-TW |
|
|
15
|
+
| [FallingText](https://reactbits.dev/text-animations/falling-text) ([fonte](https://github.com/DavidHDev/react-bits/tree/3acbd54115330a42e39f63dda2d4859e998b6684/src/ts-default/TextAnimations/FallingText)) | Characters fall with gravity + bounce creating a playful entrance. | `matter-js@^0.20.0` | `text`, `highlightWords`, `highlightClass`, `trigger`, `backgroundColor`, `wireframes`, `gravity`, `mouseConstraintStiffness`, `fontSize`, `wordSpacing` | JS-CSS, JS-TW, TS-CSS, TS-TW |
|
|
16
|
+
| [FuzzyText](https://reactbits.dev/text-animations/fuzzy-text) ([fonte](https://github.com/DavidHDev/react-bits/tree/3acbd54115330a42e39f63dda2d4859e998b6684/src/ts-default/TextAnimations/FuzzyText)) | Vibrating fuzzy text with controllable hover intensity. | `none` | `children`, `fontSize`, `fontWeight`, `fontFamily`, `color`, `enableHover`, `baseIntensity`, `hoverIntensity`, `fuzzRange`, `fps`, `direction`, `transitionDuration`, `clickEffect`, `glitchMode`, `glitchInterval`, `glitchDuration`, `gradient`, `letterSpacing`, `className` | JS-CSS, JS-TW, TS-CSS, TS-TW |
|
|
17
|
+
| [GlitchText](https://reactbits.dev/text-animations/glitch-text) ([fonte](https://github.com/DavidHDev/react-bits/tree/3acbd54115330a42e39f63dda2d4859e998b6684/src/ts-default/TextAnimations/GlitchText)) | RGB split and distortion glitch effect with jitter effects. | `none` | `children`, `speed`, `enableShadows`, `enableOnHover`, `className` | JS-CSS, JS-TW, TS-CSS, TS-TW |
|
|
18
|
+
| [GradientText](https://reactbits.dev/text-animations/gradient-text) ([fonte](https://github.com/DavidHDev/react-bits/tree/3acbd54115330a42e39f63dda2d4859e998b6684/src/ts-default/TextAnimations/GradientText)) | Animated gradient sweep across live text with speed and color control. | `motion@^12.23.12` | `children`, `className`, `colors`, `animationSpeed`, `direction`, `pauseOnHover`, `yoyo`, `showBorder` | JS-CSS, JS-TW, TS-CSS, TS-TW |
|
|
19
|
+
| [RotatingText](https://reactbits.dev/text-animations/rotating-text) ([fonte](https://github.com/DavidHDev/react-bits/tree/3acbd54115330a42e39f63dda2d4859e998b6684/src/ts-default/TextAnimations/RotatingText)) | Cycles through multiple phrases with 3D rotate / flip transitions. | `motion@^12.23.12` | `texts`, `rotationInterval`, `initial`, `animate`, `exit`, `animatePresenceMode`, `animatePresenceInitial`, `staggerDuration`, `staggerFrom`, `transition`, `loop`, `auto`, `splitBy`, `onNext`, `mainClassName`, `splitLevelClassName`, `elementLevelClassName` | JS-CSS, JS-TW, TS-CSS, TS-TW |
|
|
20
|
+
| [ScrambledText](https://reactbits.dev/text-animations/scrambled-text) ([fonte](https://github.com/DavidHDev/react-bits/tree/3acbd54115330a42e39f63dda2d4859e998b6684/src/ts-default/TextAnimations/ScrambledText)) | Detects cursor position and applies a distortion effect to text. | `gsap@^3.13.0` | `radius`, `duration`, `speed`, `scrambleChars`, `children`, `className`, `style` | JS-CSS, JS-TW, TS-CSS, TS-TW |
|
|
21
|
+
| [ScrollFloat](https://reactbits.dev/text-animations/scroll-float) ([fonte](https://github.com/DavidHDev/react-bits/tree/3acbd54115330a42e39f63dda2d4859e998b6684/src/ts-default/TextAnimations/ScrollFloat)) | Text gently floats / parallax shifts on scroll. | `gsap@^3.13.0` | `children`, `scrollContainerRef`, `containerClassName`, `textClassName`, `animationDuration`, `ease`, `scrollStart`, `scrollEnd`, `stagger` | JS-CSS, JS-TW, TS-CSS, TS-TW |
|
|
22
|
+
| [ScrollReveal](https://reactbits.dev/text-animations/scroll-reveal) ([fonte](https://github.com/DavidHDev/react-bits/tree/3acbd54115330a42e39f63dda2d4859e998b6684/src/ts-default/TextAnimations/ScrollReveal)) | Text gently unblurs and reveals on scroll. | `gsap@^3.13.0` | `children`, `scrollContainerRef`, `enableBlur`, `baseOpacity`, `baseRotation`, `blurStrength`, `containerClassName`, `textClassName`, `rotationEnd`, `wordAnimationEnd` | JS-CSS, JS-TW, TS-CSS, TS-TW |
|
|
23
|
+
| [ScrollVelocity](https://reactbits.dev/text-animations/scroll-velocity) ([fonte](https://github.com/DavidHDev/react-bits/tree/3acbd54115330a42e39f63dda2d4859e998b6684/src/ts-default/TextAnimations/ScrollVelocity)) | Text marquee animatio - speed and distortion scale with user's scroll velocity. | `motion@^12.23.12` | `scrollContainerRef`, `texts`, `velocity`, `className`, `damping`, `stiffness`, `numCopies`, `velocityMapping`, `parallaxClassName`, `scrollerClassName`, `parallaxStyle`, `scrollerStyle` | JS-CSS, JS-TW, TS-CSS, TS-TW |
|
|
24
|
+
| [ShinyText](https://reactbits.dev/text-animations/shiny-text) ([fonte](https://github.com/DavidHDev/react-bits/tree/3acbd54115330a42e39f63dda2d4859e998b6684/src/ts-default/TextAnimations/ShinyText)) | Metallic sheen sweeps across text producing a reflective highlight. | `motion@^12.23.12` | `text`, `color`, `shineColor`, `speed`, `delay`, `spread`, `yoyo`, `pauseOnHover`, `direction`, `disabled`, `className` | JS-CSS, JS-TW, TS-CSS, TS-TW |
|
|
25
|
+
| [Shuffle](https://reactbits.dev/text-animations/shuffle) ([fonte](https://github.com/DavidHDev/react-bits/tree/3acbd54115330a42e39f63dda2d4859e998b6684/src/ts-default/TextAnimations/Shuffle)) | Animated text reveal where characters shuffle before settling. | `gsap@^3.13.0 @gsap/react@^2.1.2` | `text`, `className`, `style`, `shuffleDirection`, `duration`, `maxDelay`, `ease`, `threshold`, `rootMargin`, `tag`, `textAlign`, `onShuffleComplete`, `shuffleTimes`, `animationMode`, `loop`, `loopDelay`, `stagger`, `scrambleCharset`, `colorFrom`, `colorTo`, `triggerOnce`, `respectReducedMotion`, `triggerOnHover` | JS-CSS, JS-TW, TS-CSS, TS-TW |
|
|
26
|
+
| [SplitText](https://reactbits.dev/text-animations/split-text) ([fonte](https://github.com/DavidHDev/react-bits/tree/3acbd54115330a42e39f63dda2d4859e998b6684/src/ts-default/TextAnimations/SplitText)) | Splits text into characters / words for staggered entrance animation. | `gsap@^3.13.0 @gsap/react@^2.1.2` | `tag`, `text`, `className`, `delay`, `duration`, `ease`, `splitType`, `from`, `to`, `threshold`, `rootMargin`, `textAlign`, `onLetterAnimationComplete` | JS-CSS, JS-TW, TS-CSS, TS-TW |
|
|
27
|
+
| [TextCursor](https://reactbits.dev/text-animations/text-cursor) ([fonte](https://github.com/DavidHDev/react-bits/tree/3acbd54115330a42e39f63dda2d4859e998b6684/src/ts-default/TextAnimations/TextCursor)) | Make any text element follow your cursor, leaving a trail of copies behind it. | `motion@^12.23.12` | `text`, `spacing`, `followMouseDirection`, `randomFloat`, `exitDuration`, `removalInterval`, `maxPoints` | JS-CSS, JS-TW, TS-CSS, TS-TW |
|
|
28
|
+
| [TextPressure](https://reactbits.dev/text-animations/text-pressure) ([fonte](https://github.com/DavidHDev/react-bits/tree/3acbd54115330a42e39f63dda2d4859e998b6684/src/ts-default/TextAnimations/TextPressure)) | Characters scale / warp interactively based on pointer pressure zone. | `none` | `text`, `fontFamily`, `fontUrl`, `flex`, `scale`, `alpha`, `stroke`, `width`, `weight`, `italic`, `textColor`, `strokeColor`, `className`, `minFontSize` | JS-CSS, JS-TW, TS-CSS, TS-TW |
|
|
29
|
+
| [TextType](https://reactbits.dev/text-animations/text-type) ([fonte](https://github.com/DavidHDev/react-bits/tree/3acbd54115330a42e39f63dda2d4859e998b6684/src/ts-default/TextAnimations/TextType)) | Typewriter effect with blinking cursor and adjustable typing cadence. | `gsap@^3.13.0` | `text`, `as`, `typingSpeed`, `initialDelay`, `pauseDuration`, `deletingSpeed`, `loop`, `className`, `showCursor`, `hideCursorWhileTyping`, `cursorCharacter`, `cursorBlinkDuration`, `cursorClassName`, `textColors`, `variableSpeed`, `onSentenceComplete`, `startOnVisible`, `reverseMode` | JS-CSS, JS-TW, TS-CSS, TS-TW |
|
|
30
|
+
| [TrueFocus](https://reactbits.dev/text-animations/true-focus) ([fonte](https://github.com/DavidHDev/react-bits/tree/3acbd54115330a42e39f63dda2d4859e998b6684/src/ts-default/TextAnimations/TrueFocus)) | Applies dynamic blur / clarity based over a series of words in order. | `motion@^12.23.12` | `sentence`, `separator`, `manualMode`, `blurAmount`, `borderColor`, `glowColor`, `animationDuration`, `pauseBetweenAnimations` | JS-CSS, JS-TW, TS-CSS, TS-TW |
|
|
31
|
+
| [VariableProximity](https://reactbits.dev/text-animations/variable-proximity) ([fonte](https://github.com/DavidHDev/react-bits/tree/3acbd54115330a42e39f63dda2d4859e998b6684/src/ts-default/TextAnimations/VariableProximity)) | Letter styling changes continuously with pointer distance mapping. | `motion@^12.23.12` | `label`, `fromFontVariationSettings`, `toFontVariationSettings`, `containerRef`, `radius`, `falloff` | JS-CSS, JS-TW, TS-CSS, TS-TW |
|
|
32
|
+
|
|
33
|
+
## Comandos por componente
|
|
34
|
+
|
|
35
|
+
Substituir `<Component>` pelo nome exato da primeira coluna:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npx shadcn@latest add @react-bits/<Component>-TS-TW
|
|
39
|
+
npx shadcn@latest add https://reactbits.dev/r/<Component>-TS-TW
|
|
40
|
+
npx jsrepo@latest add https://reactbits.dev/r/<Component>-TS-TW
|
|
41
|
+
```
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Software Engineering Applicability
|
|
2
|
+
|
|
3
|
+
SINAPSE does not execute all 275 documented engineering workflows for every
|
|
4
|
+
change. It selects an applicable subset from project type, affected surfaces,
|
|
5
|
+
change kind, data classes, deployment target, reversibility and risk.
|
|
6
|
+
|
|
7
|
+
The Phase 0/1 contract is implemented in
|
|
8
|
+
`packages/engineering-applicability/index.js`. It is deterministic,
|
|
9
|
+
provider-neutral and advisory. Claude Code and Codex receive the exact same
|
|
10
|
+
canonical decision; their adapters may change presentation only.
|
|
11
|
+
|
|
12
|
+
## Mandatory baseline
|
|
13
|
+
|
|
14
|
+
Until the protected workflow templates are evolved through framework
|
|
15
|
+
governance, agents must apply these minimum obligations even where a legacy YAML
|
|
16
|
+
marks a review optional:
|
|
17
|
+
|
|
18
|
+
- every implementation requires a Ready story/spec, traceability and QA;
|
|
19
|
+
- brownfield changes require characterization tests and an incremental change
|
|
20
|
+
strategy before implementation;
|
|
21
|
+
- frontend work requires design-system grounding and visual validation at
|
|
22
|
+
desktop and mobile sizes;
|
|
23
|
+
- exposed frontend/API work requires application-security review;
|
|
24
|
+
- database changes require schema, migration, rollback and access-control review;
|
|
25
|
+
- high security, privacy or availability risk adds the respective specialist
|
|
26
|
+
review;
|
|
27
|
+
- irreversible actions require an explicit human checkpoint;
|
|
28
|
+
- push, PR, release and deploy remain exclusive to DevOps authority.
|
|
29
|
+
|
|
30
|
+
The advisory engine does not itself block, execute, verify evidence or waive a
|
|
31
|
+
gate. Those capabilities require later stories in the applicability epic.
|
package/docs/getting-started.md
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
## Instalação em 1 comando
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
|
-
npx sinapse-ai install
|
|
14
|
+
npx sinapse-ai@latest install
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
O wizard detecta seu ambiente, escolhe IDE (Claude Code ou Codex), instala os 17 squads e configura os hooks essenciais automaticamente.
|
|
@@ -48,8 +48,12 @@ No prompt do Claude Code ou Codex:
|
|
|
48
48
|
|
|
49
49
|
## Reinstalar / atualizar
|
|
50
50
|
|
|
51
|
+
Use sempre `@latest` para evitar uma versao antiga mantida no cache do `npx`.
|
|
52
|
+
Em instalacoes globais, execute `npm install -g sinapse-ai@latest` antes de
|
|
53
|
+
`sinapse-ai update`.
|
|
54
|
+
|
|
51
55
|
```bash
|
|
52
|
-
npx sinapse-ai install --reconfigure # reconfigura tudo
|
|
56
|
+
npx sinapse-ai@latest install --reconfigure # reconfigura tudo
|
|
53
57
|
npx sinapse-ai update # atualiza versão sem perder customizações
|
|
54
58
|
npx sinapse-ai uninstall # remove tudo
|
|
55
59
|
```
|
|
@@ -38,13 +38,13 @@ This directory contains comprehensive installation and setup documentation for S
|
|
|
38
38
|
### New Installation
|
|
39
39
|
|
|
40
40
|
```bash
|
|
41
|
-
npx sinapse-ai install
|
|
41
|
+
npx sinapse-ai@latest install
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
### Upgrading
|
|
45
45
|
|
|
46
46
|
```bash
|
|
47
|
-
npx sinapse-ai
|
|
47
|
+
npx sinapse-ai@latest update
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
### Having Issues?
|
package/package.json
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sinapse-ai",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.25.0",
|
|
4
4
|
"description": "SINAPSE AI: Framework de orquestracao de IA — 17 squads, 172 agentes especializados",
|
|
5
5
|
"bin": {
|
|
6
6
|
"sinapse": "bin/sinapse.js",
|
|
7
7
|
"sinapse-ai": "bin/cli.js",
|
|
8
|
-
"sinapse-delegate": "bin/sinapse-delegate.js"
|
|
8
|
+
"sinapse-delegate": "bin/sinapse-delegate.js",
|
|
9
|
+
"sinapse-codex": ".codex/scripts/sinapse-codex.js"
|
|
9
10
|
},
|
|
10
11
|
"main": ".sinapse-ai/index.js",
|
|
11
12
|
"module": ".sinapse-ai/index.esm.js",
|
|
@@ -32,6 +33,10 @@
|
|
|
32
33
|
".claude/CLAUDE.md",
|
|
33
34
|
".claude/rules/",
|
|
34
35
|
".claude/hooks/",
|
|
36
|
+
".claude/agents/",
|
|
37
|
+
".claude/skills/",
|
|
38
|
+
".claude/skill-manifest.json",
|
|
39
|
+
"!.claude/agents/coderabbit-reviewer.md",
|
|
35
40
|
".codex/catalog.json",
|
|
36
41
|
".codex/command-registry.json",
|
|
37
42
|
".codex/delegation-matrix.json",
|
|
@@ -40,10 +45,14 @@
|
|
|
40
45
|
".codex/handoff-packet.template.json",
|
|
41
46
|
".codex/delegation-parity.json",
|
|
42
47
|
".codex/instructions.md",
|
|
48
|
+
".codex/config.toml",
|
|
49
|
+
".codex/hooks.json",
|
|
50
|
+
".codex/hooks/",
|
|
43
51
|
".codex/agents/",
|
|
44
52
|
".codex/scripts/",
|
|
45
53
|
".codex/skills/",
|
|
46
54
|
".codex/tasks/",
|
|
55
|
+
".agents/skills/",
|
|
47
56
|
"AGENTS.md",
|
|
48
57
|
"squads/squad-*/**",
|
|
49
58
|
"squads/claude-code-mastery/**",
|
|
@@ -108,12 +117,16 @@
|
|
|
108
117
|
"sync:ide:validate": "node .sinapse-ai/infrastructure/scripts/ide-sync/index.js validate",
|
|
109
118
|
"sync:ide:check": "node .sinapse-ai/infrastructure/scripts/ide-sync/index.js validate --strict",
|
|
110
119
|
"sync:ide:claude": "node .sinapse-ai/infrastructure/scripts/ide-sync/index.js sync --ide claude-code",
|
|
111
|
-
"sync:ide:codex": "node .sinapse-ai/infrastructure/scripts/sync-codex-local-first.js",
|
|
120
|
+
"sync:ide:codex": "node .sinapse-ai/infrastructure/scripts/sync-codex-local-first.js && node .codex/scripts/sync-codex-native.js",
|
|
121
|
+
"sync:providers": "node scripts/sync-provider-adapters.js",
|
|
112
122
|
"validate:claude-sync": "node .sinapse-ai/infrastructure/scripts/ide-sync/index.js validate --ide claude-code --strict",
|
|
113
123
|
"validate:claude-integration": "node .sinapse-ai/infrastructure/scripts/validate-claude-integration.js",
|
|
124
|
+
"validate:providers": "node scripts/validate-provider-adapters.js",
|
|
125
|
+
"validate:engineering-applicability": "jest tests/unit/engineering-applicability.test.js --runInBand",
|
|
114
126
|
"validate:squad-schema": "node scripts/validate-squad-yaml.js",
|
|
115
127
|
"validate:squad-schema:strict": "node scripts/validate-squad-yaml.js --strict",
|
|
116
|
-
"validate:codex-sync": "node .sinapse-ai/infrastructure/scripts/validate-codex-sync.js",
|
|
128
|
+
"validate:codex-sync": "node .sinapse-ai/infrastructure/scripts/validate-codex-sync.js && node .codex/scripts/validate-codex-native.js",
|
|
129
|
+
"validate:codex-native": "node .codex/scripts/validate-codex-native.js",
|
|
117
130
|
"validate:codex-integration": "node .sinapse-ai/infrastructure/scripts/validate-codex-integration.js",
|
|
118
131
|
"validate:codex-commands": "node .sinapse-ai/infrastructure/scripts/validate-codex-command-registry.js",
|
|
119
132
|
"validate:codex-delegation": "node .sinapse-ai/infrastructure/scripts/validate-codex-delegation.js",
|
|
@@ -167,7 +180,6 @@
|
|
|
167
180
|
"execa": "^5.1.1",
|
|
168
181
|
"fast-glob": "^3.3.3",
|
|
169
182
|
"fs-extra": "^11.3.2",
|
|
170
|
-
"glob": "^10.4.4",
|
|
171
183
|
"handlebars": "^4.7.8",
|
|
172
184
|
"inquirer": "^8.2.6",
|
|
173
185
|
"js-yaml": "^4.2.0",
|
|
@@ -219,6 +231,7 @@
|
|
|
219
231
|
"@typescript-eslint/parser": "^8.46.2",
|
|
220
232
|
"conventional-changelog-conventionalcommits": "^9.1.0",
|
|
221
233
|
"eslint": "^9.38.0",
|
|
234
|
+
"glob": "^10.4.4",
|
|
222
235
|
"husky": "^9.1.7",
|
|
223
236
|
"jest": "^30.2.0",
|
|
224
237
|
"lint-staged": "^16.1.1",
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"greenfield-web-low": {
|
|
3
|
+
"schemaVersion": "1.0.0",
|
|
4
|
+
"projectType": "greenfield",
|
|
5
|
+
"surfaces": ["frontend", "api"],
|
|
6
|
+
"changeKind": "feature",
|
|
7
|
+
"dataClasses": ["public"],
|
|
8
|
+
"deploymentTargets": ["web", "cloud"],
|
|
9
|
+
"reversibility": "reversible",
|
|
10
|
+
"risk": { "security": "low", "privacy": "low", "availability": "low" }
|
|
11
|
+
},
|
|
12
|
+
"greenfield-data-high": {
|
|
13
|
+
"schemaVersion": "1.0.0",
|
|
14
|
+
"projectType": "greenfield",
|
|
15
|
+
"surfaces": ["database", "api"],
|
|
16
|
+
"changeKind": "feature",
|
|
17
|
+
"dataClasses": ["personal"],
|
|
18
|
+
"deploymentTargets": ["cloud"],
|
|
19
|
+
"reversibility": "conditional",
|
|
20
|
+
"risk": { "security": "high", "privacy": "high", "availability": "medium" }
|
|
21
|
+
},
|
|
22
|
+
"brownfield-ui-low": {
|
|
23
|
+
"schemaVersion": "1.0.0",
|
|
24
|
+
"projectType": "brownfield",
|
|
25
|
+
"surfaces": ["frontend"],
|
|
26
|
+
"changeKind": "fix",
|
|
27
|
+
"dataClasses": ["public"],
|
|
28
|
+
"deploymentTargets": ["web"],
|
|
29
|
+
"reversibility": "reversible",
|
|
30
|
+
"risk": { "security": "low", "privacy": "low", "availability": "low" }
|
|
31
|
+
},
|
|
32
|
+
"brownfield-service-high": {
|
|
33
|
+
"schemaVersion": "1.0.0",
|
|
34
|
+
"projectType": "brownfield",
|
|
35
|
+
"surfaces": ["api", "database"],
|
|
36
|
+
"changeKind": "migration",
|
|
37
|
+
"dataClasses": ["personal"],
|
|
38
|
+
"deploymentTargets": ["cloud"],
|
|
39
|
+
"reversibility": "irreversible",
|
|
40
|
+
"risk": { "security": "high", "privacy": "high", "availability": "high" }
|
|
41
|
+
},
|
|
42
|
+
"unknown-surface": {
|
|
43
|
+
"schemaVersion": "1.0.0",
|
|
44
|
+
"projectType": "brownfield",
|
|
45
|
+
"surfaces": ["quantum-ui"],
|
|
46
|
+
"changeKind": "feature",
|
|
47
|
+
"dataClasses": ["public"],
|
|
48
|
+
"deploymentTargets": ["cloud"],
|
|
49
|
+
"reversibility": "reversible",
|
|
50
|
+
"risk": { "security": "low", "privacy": "low", "availability": "low" }
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const crypto = require('crypto');
|
|
4
|
+
|
|
5
|
+
const SCHEMA_VERSION = '1.0.0';
|
|
6
|
+
const ENUMS = Object.freeze({
|
|
7
|
+
projectType: ['brownfield', 'greenfield'],
|
|
8
|
+
surfaces: ['api', 'database', 'frontend'],
|
|
9
|
+
changeKind: ['feature', 'fix', 'infrastructure', 'migration', 'release'],
|
|
10
|
+
dataClasses: ['confidential', 'personal', 'public', 'restricted'],
|
|
11
|
+
deploymentTargets: ['cloud', 'edge', 'mobile', 'on-premise', 'web'],
|
|
12
|
+
reversibility: ['conditional', 'irreversible', 'reversible'],
|
|
13
|
+
risk: ['critical', 'high', 'low', 'medium'],
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
const SOURCES = Object.freeze({
|
|
17
|
+
lifecycle: ['constitution:III', 'engineering-audit:project-workflows'],
|
|
18
|
+
appsec: ['domain:29', 'constitution:X'],
|
|
19
|
+
design: ['domain:43', 'engineering-audit:greenfield-ui'],
|
|
20
|
+
legacy: ['domain:08', 'engineering-audit:brownfield'],
|
|
21
|
+
privacy: ['domain:36', 'constitution:X'],
|
|
22
|
+
availability: ['domain:10', 'constitution:V'],
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
function stable(value) {
|
|
26
|
+
if (Array.isArray(value)) return value.map(stable);
|
|
27
|
+
if (!value || typeof value !== 'object') return value;
|
|
28
|
+
return Object.fromEntries(Object.keys(value).sort().map((key) => [key, stable(value[key])]));
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function digest(value) {
|
|
32
|
+
return `sha256:${crypto.createHash('sha256').update(JSON.stringify(stable(value))).digest('hex')}`;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function uniqueSorted(values) {
|
|
36
|
+
return [...new Set(Array.isArray(values) ? values : [])].sort();
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function normalizeInput(input = {}) {
|
|
40
|
+
const unknown = [];
|
|
41
|
+
const normalized = {
|
|
42
|
+
schemaVersion: input.schemaVersion,
|
|
43
|
+
projectType: input.projectType,
|
|
44
|
+
surfaces: uniqueSorted(input.surfaces),
|
|
45
|
+
changeKind: input.changeKind,
|
|
46
|
+
dataClasses: uniqueSorted(input.dataClasses),
|
|
47
|
+
deploymentTargets: uniqueSorted(input.deploymentTargets),
|
|
48
|
+
reversibility: input.reversibility,
|
|
49
|
+
risk: {
|
|
50
|
+
availability: input.risk?.availability,
|
|
51
|
+
privacy: input.risk?.privacy,
|
|
52
|
+
security: input.risk?.security,
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
if (normalized.schemaVersion !== SCHEMA_VERSION) unknown.push({ field: 'schemaVersion', value: normalized.schemaVersion, reasonCode: 'UNSUPPORTED_SCHEMA' });
|
|
57
|
+
for (const field of ['projectType', 'changeKind', 'reversibility']) {
|
|
58
|
+
if (!ENUMS[field].includes(normalized[field])) unknown.push({ field, value: normalized[field], reasonCode: 'UNKNOWN_SIGNAL' });
|
|
59
|
+
}
|
|
60
|
+
for (const field of ['surfaces', 'dataClasses', 'deploymentTargets']) {
|
|
61
|
+
for (const value of normalized[field]) {
|
|
62
|
+
if (!ENUMS[field].includes(value)) unknown.push({ field, value, reasonCode: 'UNKNOWN_SIGNAL' });
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
for (const field of ['availability', 'privacy', 'security']) {
|
|
66
|
+
if (!ENUMS.risk.includes(normalized.risk[field])) unknown.push({ field: `risk.${field}`, value: normalized.risk[field], reasonCode: 'UNKNOWN_SIGNAL' });
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return { normalized: stable(normalized), unknown: unknown.sort((a, b) => `${a.field}:${a.value}`.localeCompare(`${b.field}:${b.value}`)) };
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
function obligation(id, reasonCode, sourceRefs, severity = 'advisory') {
|
|
73
|
+
return { id, reasonCodes: [reasonCode], severity, sourceRefs: [...sourceRefs].sort() };
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
function decideApplicability(input) {
|
|
77
|
+
const { normalized, unknown } = normalizeInput(input);
|
|
78
|
+
const inputDigest = digest(normalized);
|
|
79
|
+
if (unknown.length) {
|
|
80
|
+
const body = {
|
|
81
|
+
schemaVersion: SCHEMA_VERSION,
|
|
82
|
+
mode: 'advisory',
|
|
83
|
+
status: 'unknown-signal',
|
|
84
|
+
inputDigest,
|
|
85
|
+
normalized,
|
|
86
|
+
selected: [],
|
|
87
|
+
excluded: [],
|
|
88
|
+
unknown,
|
|
89
|
+
humanCheckpoints: [{ id: 'classify-unknown-signal', reasonCodes: [...new Set(unknown.map((item) => item.reasonCode))].sort() }],
|
|
90
|
+
};
|
|
91
|
+
const decisionDigest = digest(body);
|
|
92
|
+
return { ...body, decisionId: `ap_${decisionDigest.slice(7, 23)}`, decisionDigest };
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
const selected = [
|
|
96
|
+
obligation('story-spec-readiness', 'LIFECYCLE_REQUIRED', SOURCES.lifecycle),
|
|
97
|
+
obligation('quality-assurance', 'QUALITY_REQUIRED', SOURCES.lifecycle),
|
|
98
|
+
obligation('requirements-traceability', 'NO_INVENTION', SOURCES.lifecycle),
|
|
99
|
+
];
|
|
100
|
+
const excluded = [];
|
|
101
|
+
const surfaces = new Set(normalized.surfaces);
|
|
102
|
+
const riskRank = { low: 0, medium: 1, high: 2, critical: 3 };
|
|
103
|
+
|
|
104
|
+
if (surfaces.has('frontend')) selected.push(obligation('design-system-grounding', 'SURFACE_FRONTEND', SOURCES.design));
|
|
105
|
+
else excluded.push(obligation('design-system-grounding', 'SURFACE_ABSENT', SOURCES.design));
|
|
106
|
+
|
|
107
|
+
if (surfaces.has('frontend') || surfaces.has('api')) selected.push(obligation('application-security', 'EXPOSED_APPLICATION_SURFACE', SOURCES.appsec));
|
|
108
|
+
else excluded.push(obligation('application-security', 'SURFACE_ABSENT', SOURCES.appsec));
|
|
109
|
+
|
|
110
|
+
if (surfaces.has('database')) selected.push(obligation('database-safety', 'SURFACE_DATABASE', SOURCES.appsec));
|
|
111
|
+
else excluded.push(obligation('database-safety', 'SURFACE_ABSENT', SOURCES.appsec));
|
|
112
|
+
|
|
113
|
+
if (normalized.projectType === 'brownfield') {
|
|
114
|
+
selected.push(obligation('characterization-baseline', 'PROJECT_BROWNFIELD', SOURCES.legacy));
|
|
115
|
+
selected.push(obligation('incremental-change-strategy', 'PROJECT_BROWNFIELD', SOURCES.legacy));
|
|
116
|
+
} else {
|
|
117
|
+
excluded.push(obligation('characterization-baseline', 'PROJECT_GREENFIELD', SOURCES.legacy));
|
|
118
|
+
excluded.push(obligation('incremental-change-strategy', 'PROJECT_GREENFIELD', SOURCES.legacy));
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
if (riskRank[normalized.risk.security] >= 2) selected.push(obligation('threat-model', 'SECURITY_HIGH', SOURCES.appsec));
|
|
122
|
+
if (riskRank[normalized.risk.privacy] >= 2 || normalized.dataClasses.includes('personal')) selected.push(obligation('privacy-impact-assessment', 'PRIVACY_ELEVATED', SOURCES.privacy));
|
|
123
|
+
if (riskRank[normalized.risk.availability] >= 2) selected.push(obligation('availability-plan', 'AVAILABILITY_HIGH', SOURCES.availability));
|
|
124
|
+
|
|
125
|
+
const humanCheckpoints = [];
|
|
126
|
+
if (normalized.reversibility === 'irreversible') humanCheckpoints.push({ id: 'irreversible-action-approval', reasonCodes: ['IRREVERSIBLE_CHANGE'] });
|
|
127
|
+
|
|
128
|
+
selected.sort((a, b) => a.id.localeCompare(b.id));
|
|
129
|
+
excluded.sort((a, b) => a.id.localeCompare(b.id));
|
|
130
|
+
const body = {
|
|
131
|
+
schemaVersion: SCHEMA_VERSION,
|
|
132
|
+
mode: 'advisory',
|
|
133
|
+
status: humanCheckpoints.length ? 'human-checkpoint' : 'advisory',
|
|
134
|
+
inputDigest,
|
|
135
|
+
normalized,
|
|
136
|
+
selected,
|
|
137
|
+
excluded,
|
|
138
|
+
unknown: [],
|
|
139
|
+
humanCheckpoints,
|
|
140
|
+
};
|
|
141
|
+
const decisionDigest = digest(body);
|
|
142
|
+
return { ...body, decisionId: `ap_${decisionDigest.slice(7, 23)}`, decisionDigest };
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
function renderForProvider(provider, decision) {
|
|
146
|
+
if (!['claude-code', 'codex'].includes(provider)) throw new Error(`Unsupported provider: ${provider}`);
|
|
147
|
+
return { provider, mode: 'advisory', blocking: false, executedWorkflows: [], verifiedEvidence: [], decision };
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
module.exports = { SCHEMA_VERSION, ENUMS, normalizeInput, decideApplicability, renderForProvider, digest };
|
|
@@ -58,6 +58,10 @@ const ROOT_FILES_TO_COPY = [
|
|
|
58
58
|
'working-in-the-brownfield.md',
|
|
59
59
|
];
|
|
60
60
|
|
|
61
|
+
/** Project-local Codex payloads copied only when Codex support is selected. */
|
|
62
|
+
const CODEX_TOP_LEVEL_DIRS = ['.agents', '.codex'];
|
|
63
|
+
const CLAUDE_SUPPORT_DIRS = ['.claude/hooks', '.claude/rules'];
|
|
64
|
+
|
|
61
65
|
/**
|
|
62
66
|
* Replace {root} placeholder in file content
|
|
63
67
|
* @param {string} content - File content
|
|
@@ -116,6 +120,7 @@ async function generateVersionJson(options) {
|
|
|
116
120
|
version,
|
|
117
121
|
installedFiles,
|
|
118
122
|
mode = 'project-development',
|
|
123
|
+
providers = [],
|
|
119
124
|
} = options;
|
|
120
125
|
|
|
121
126
|
const fileHashes = await generateFileHashes(targetSinapseCore, installedFiles);
|
|
@@ -124,6 +129,7 @@ async function generateVersionJson(options) {
|
|
|
124
129
|
version,
|
|
125
130
|
installedAt: new Date().toISOString(),
|
|
126
131
|
mode,
|
|
132
|
+
providers: [...new Set(providers)].sort(),
|
|
127
133
|
fileHashes,
|
|
128
134
|
customized: [],
|
|
129
135
|
};
|
|
@@ -156,6 +162,19 @@ function isUserOwnedL3(destPath) {
|
|
|
156
162
|
return false;
|
|
157
163
|
}
|
|
158
164
|
|
|
165
|
+
function isUserOwnedCodexConfig(destPath) {
|
|
166
|
+
const norm = String(destPath).replace(/\\/g, '/');
|
|
167
|
+
if (norm.endsWith('/.codex/config.toml') || norm.endsWith('/.codex/hooks.json')) return true;
|
|
168
|
+
if (/\/\.agents\/skills\/[^/]+\/SKILL\.md$/.test(norm)) {
|
|
169
|
+
const compatibilityPath = destPath.replace(
|
|
170
|
+
`${path.sep}.agents${path.sep}skills${path.sep}`,
|
|
171
|
+
`${path.sep}.codex${path.sep}skills${path.sep}`,
|
|
172
|
+
);
|
|
173
|
+
if (!fs.existsSync(destPath) && fs.existsSync(compatibilityPath)) return true;
|
|
174
|
+
}
|
|
175
|
+
return /\/(?:\.codex|\.agents)\/skills\/[^/]+\/SKILL\.md$/.test(norm);
|
|
176
|
+
}
|
|
177
|
+
|
|
159
178
|
async function copyFileWithRootReplacement(sourcePath, destPath, replaceRoot = true, preserveExisting = null) {
|
|
160
179
|
try {
|
|
161
180
|
// Preserve user-owned L3 files (core-config.yaml, agent MEMORY.md) when they
|
|
@@ -232,6 +251,43 @@ async function copyDirectoryWithRootReplacement(sourceDir, destDir, onProgress =
|
|
|
232
251
|
return copiedFiles;
|
|
233
252
|
}
|
|
234
253
|
|
|
254
|
+
async function deliverClaudeNativeAdapters(pkgRoot, targetDir, options = {}) {
|
|
255
|
+
const overwriteManaged = options.overwriteManaged === true;
|
|
256
|
+
const delivered = { agents: [], skills: [], manifest: null };
|
|
257
|
+
const sourceAgents = path.join(pkgRoot, '.claude', 'agents');
|
|
258
|
+
if (await fs.pathExists(sourceAgents)) {
|
|
259
|
+
for (const file of (await fs.readdir(sourceAgents)).filter((name) => /^sinapse-.+\.md$/.test(name))) {
|
|
260
|
+
const destination = path.join(targetDir, '.claude', 'agents', file);
|
|
261
|
+
if (!overwriteManaged && await fs.pathExists(destination)) continue;
|
|
262
|
+
if (await copyFileWithRootReplacement(path.join(sourceAgents, file), destination, true)) {
|
|
263
|
+
delivered.agents.push(path.join('.claude', 'agents', file));
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
const sourceSkills = path.join(pkgRoot, '.claude', 'skills');
|
|
269
|
+
if (await fs.pathExists(sourceSkills)) {
|
|
270
|
+
const entries = await fs.readdir(sourceSkills, { withFileTypes: true });
|
|
271
|
+
for (const entry of entries.filter((item) => item.isDirectory())) {
|
|
272
|
+
const source = path.join(sourceSkills, entry.name, 'SKILL.md');
|
|
273
|
+
if (!await fs.pathExists(source)) continue;
|
|
274
|
+
const relativePath = path.join('.claude', 'skills', entry.name, 'SKILL.md');
|
|
275
|
+
const destination = path.join(targetDir, relativePath);
|
|
276
|
+
if (!overwriteManaged && await fs.pathExists(destination)) continue;
|
|
277
|
+
if (await copyFileWithRootReplacement(source, destination, true)) delivered.skills.push(relativePath);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
const manifestSource = path.join(pkgRoot, '.claude', 'skill-manifest.json');
|
|
281
|
+
if (await fs.pathExists(manifestSource)) {
|
|
282
|
+
const relativePath = path.join('.claude', 'skill-manifest.json');
|
|
283
|
+
const destination = path.join(targetDir, relativePath);
|
|
284
|
+
if ((overwriteManaged || !await fs.pathExists(destination)) && await copyFileWithRootReplacement(manifestSource, destination, true)) {
|
|
285
|
+
delivered.manifest = relativePath;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
return delivered;
|
|
289
|
+
}
|
|
290
|
+
|
|
235
291
|
/**
|
|
236
292
|
* Codex CLI context files that live at the package ROOT (not under .codex/ or
|
|
237
293
|
* .sinapse-ai/), so the directory-copy loops never reach them. AGENTS.md is the
|
|
@@ -278,6 +334,8 @@ async function installSinapseCore(options = {}) {
|
|
|
278
334
|
targetDir = process.cwd(),
|
|
279
335
|
onProgress = null,
|
|
280
336
|
includeCodex = false,
|
|
337
|
+
includeClaude = false,
|
|
338
|
+
overwriteManagedAdapters = false,
|
|
281
339
|
} = options;
|
|
282
340
|
|
|
283
341
|
const result = {
|
|
@@ -349,19 +407,42 @@ async function installSinapseCore(options = {}) {
|
|
|
349
407
|
// regenerated from squads/ + core by sync-codex-local-first.js.
|
|
350
408
|
const pkgRoot = path.dirname(sourceDir);
|
|
351
409
|
const topLevelDirs = ['squads'];
|
|
352
|
-
if (includeCodex) topLevelDirs.push(
|
|
410
|
+
if (includeCodex) topLevelDirs.push(...CODEX_TOP_LEVEL_DIRS);
|
|
411
|
+
if (includeClaude) topLevelDirs.push(...CLAUDE_SUPPORT_DIRS);
|
|
353
412
|
for (const dirName of topLevelDirs) {
|
|
354
413
|
const src = path.join(pkgRoot, dirName);
|
|
355
414
|
const dest = path.join(targetDir, dirName);
|
|
356
415
|
if (await fs.pathExists(src)) {
|
|
357
416
|
spinner.text = `Copying ${dirName}...`;
|
|
358
|
-
const
|
|
417
|
+
const preserveExisting = dirName === '.codex' || dirName === '.agents'
|
|
418
|
+
? isUserOwnedCodexConfig
|
|
419
|
+
: null;
|
|
420
|
+
const copied = await copyDirectoryWithRootReplacement(
|
|
421
|
+
src,
|
|
422
|
+
dest,
|
|
423
|
+
onProgress,
|
|
424
|
+
preserveExisting,
|
|
425
|
+
);
|
|
359
426
|
result.installedFiles.push(...copied.map((f) => path.join(dirName, f)));
|
|
360
427
|
if (dirName === '.codex') result.codexInstalledFiles = copied.length;
|
|
428
|
+
if (dirName === '.agents') result.codexNativeSkillFiles = copied.length;
|
|
361
429
|
if (dirName === 'squads') result.squadsInstalledFiles = copied.length;
|
|
362
430
|
}
|
|
363
431
|
}
|
|
364
432
|
|
|
433
|
+
if (includeClaude) {
|
|
434
|
+
const claude = await deliverClaudeNativeAdapters(pkgRoot, targetDir, { overwriteManaged: overwriteManagedAdapters });
|
|
435
|
+
result.claudeNativeAgentFiles = claude.agents.length;
|
|
436
|
+
result.claudeNativeSkillFiles = claude.skills.length;
|
|
437
|
+
result.installedFiles.push(...claude.agents, ...claude.skills);
|
|
438
|
+
if (claude.manifest) result.installedFiles.push(claude.manifest);
|
|
439
|
+
const claudeContextSource = path.join(pkgRoot, '.claude', 'CLAUDE.md');
|
|
440
|
+
const claudeContextDest = path.join(targetDir, '.claude', 'CLAUDE.md');
|
|
441
|
+
if (await fs.pathExists(claudeContextSource) && await copyFileWithRootReplacement(claudeContextSource, claudeContextDest, true)) {
|
|
442
|
+
result.installedFiles.push(path.join('.claude', 'CLAUDE.md'));
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
|
|
365
446
|
// AGENTS.md is the Codex CLI's default context file (Imperator greeting +
|
|
366
447
|
// the full agent roster). It lives at the package ROOT (not under .codex/ or
|
|
367
448
|
// .sinapse-ai/), so neither loop above reaches it. Without it, a Codex user's
|
|
@@ -399,6 +480,7 @@ async function installSinapseCore(options = {}) {
|
|
|
399
480
|
version: packageVersion,
|
|
400
481
|
installedFiles: result.installedFiles,
|
|
401
482
|
mode: 'project-development',
|
|
483
|
+
providers: [includeClaude && 'claude-code', includeCodex && 'codex'].filter(Boolean),
|
|
402
484
|
});
|
|
403
485
|
result.versionInfo = versionInfo;
|
|
404
486
|
|
|
@@ -523,7 +605,10 @@ module.exports = {
|
|
|
523
605
|
generateVersionJson,
|
|
524
606
|
generateFileHashes,
|
|
525
607
|
deliverCodexRootFiles,
|
|
608
|
+
deliverClaudeNativeAdapters,
|
|
526
609
|
FOLDERS_TO_COPY,
|
|
527
610
|
ROOT_FILES_TO_COPY,
|
|
528
611
|
CODEX_ROOT_FILES,
|
|
612
|
+
CODEX_TOP_LEVEL_DIRS,
|
|
613
|
+
CLAUDE_SUPPORT_DIRS,
|
|
529
614
|
};
|