sinapse-ai 1.16.0 → 1.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/hooks/doc-first-gate.cjs +156 -0
- package/.claude/hooks/enforce-story-gate.cjs +6 -2
- package/.claude/rules/documentation-first.md +6 -0
- package/.claude/rules/hook-governance.md +1 -0
- package/.sinapse-ai/constitution.md +3 -3
- package/.sinapse-ai/core/atlas/atlas-data.js +278 -0
- package/.sinapse-ai/core/atlas/flows-pt.js +253 -0
- package/.sinapse-ai/core/atlas/flows.js +266 -0
- package/.sinapse-ai/core/atlas/index.js +62 -0
- package/.sinapse-ai/core/atlas/render-html.js +216 -0
- package/.sinapse-ai/core/atlas/render-markdown.js +313 -0
- package/.sinapse-ai/core/atlas/render-research-card.js +164 -0
- package/.sinapse-ai/core/code-intel/registry-syncer.js +5 -3
- package/.sinapse-ai/core/doctor/checks/agent-memory.js +7 -5
- package/.sinapse-ai/core/doctor/checks/claude-md.js +13 -0
- package/.sinapse-ai/core/doctor/checks/constitution-consistency.js +1 -0
- package/.sinapse-ai/core/doctor/checks/hooks-claude-count.js +11 -0
- package/.sinapse-ai/core/doctor/checks/settings-json.js +16 -2
- package/.sinapse-ai/core/doctor/index.js +27 -0
- package/.sinapse-ai/core/execution/build-orchestrator.js +192 -8
- package/.sinapse-ai/core/external-executors/delegate-cli.js +6 -2
- package/.sinapse-ai/core/health-check/checks/project/constitution-consistency.js +2 -1
- package/.sinapse-ai/core/ideation/ideation-engine.js +10 -8
- package/.sinapse-ai/core/mcp/config-migrator.js +8 -5
- package/.sinapse-ai/core/mcp/global-config-manager.js +4 -1
- package/.sinapse-ai/core/mcp/symlink-manager.js +6 -3
- package/.sinapse-ai/core/orchestration/brownfield-handler.js +5 -4
- package/.sinapse-ai/core/orchestration/build-command.js +136 -0
- package/.sinapse-ai/core/orchestration/doc-first-resolver.js +322 -0
- package/.sinapse-ai/core/orchestration/executors/epic-4-executor.js +3 -0
- package/.sinapse-ai/core/orchestration/gate-evaluator.js +58 -9
- package/.sinapse-ai/core/orchestration/route-command.js +97 -0
- package/.sinapse-ai/core/orchestration/session-state.js +19 -2
- package/.sinapse-ai/core/orchestration/terminal-spawner.js +24 -1
- package/.sinapse-ai/core/orchestration/workflow-executor.js +102 -3
- package/.sinapse-ai/core/quality-gates/focus-area-recommender.js +15 -11
- package/.sinapse-ai/core/registry/build-registry.js +3 -2
- package/.sinapse-ai/core/synapse/scripts/generate-constitution.js +1 -0
- package/.sinapse-ai/core/synapse/utils/atomic-write.js +34 -9
- package/.sinapse-ai/core-config.yaml +5 -1
- package/.sinapse-ai/data/capability-detection.js +3 -3
- package/.sinapse-ai/data/entity-registry.yaml +288 -90
- package/.sinapse-ai/data/mcp-discipline.js +1 -1
- package/.sinapse-ai/data/mcp-tool-examples.yaml +8 -8
- package/.sinapse-ai/data/tok2-validation.js +1 -1
- package/.sinapse-ai/data/tool-registry.yaml +4 -3
- package/.sinapse-ai/development/agents/snps-orqx.md +14 -5
- package/.sinapse-ai/development/scripts/migrate-task-to-v2.js +1 -1
- package/.sinapse-ai/development/scripts/validate-task-v2.js +67 -4
- package/.sinapse-ai/development/tasks/advanced-elicitation.md +3 -3
- package/.sinapse-ai/development/tasks/analyst-facilitate-brainstorming.md +3 -3
- package/.sinapse-ai/development/tasks/analyze-framework.md +1 -8
- package/.sinapse-ai/development/tasks/analyze-performance.md +1 -8
- package/.sinapse-ai/development/tasks/apply-qa-fixes.md +3 -3
- package/.sinapse-ai/development/tasks/architect-analyze-impact.md +3 -3
- package/.sinapse-ai/development/tasks/audit-codebase.md +1 -8
- package/.sinapse-ai/development/tasks/audit-tailwind-config.md +1 -4
- package/.sinapse-ai/development/tasks/audit-utilities.md +1 -8
- package/.sinapse-ai/development/tasks/bootstrap-shadcn-library.md +3 -3
- package/.sinapse-ai/development/tasks/brownfield-create-epic.md +3 -3
- package/.sinapse-ai/development/tasks/brownfield-create-story.md +3 -3
- package/.sinapse-ai/development/tasks/build-component.md +2 -5
- package/.sinapse-ai/development/tasks/calculate-roi.md +3 -3
- package/.sinapse-ai/development/tasks/ci-cd-configuration.md +1 -1
- package/.sinapse-ai/development/tasks/cleanup-utilities.md +3 -3
- package/.sinapse-ai/development/tasks/collaborative-edit.md +3 -3
- package/.sinapse-ai/development/tasks/compose-molecule.md +2 -5
- package/.sinapse-ai/development/tasks/consolidate-patterns.md +3 -3
- package/.sinapse-ai/development/tasks/correct-course.md +3 -3
- package/.sinapse-ai/development/tasks/create-brownfield-story.md +2 -5
- package/.sinapse-ai/development/tasks/create-deep-research-prompt.md +2 -5
- package/.sinapse-ai/development/tasks/create-doc.md +3 -6
- package/.sinapse-ai/development/tasks/create-next-story.md +4 -8
- package/.sinapse-ai/development/tasks/create-suite.md +2 -5
- package/.sinapse-ai/development/tasks/create-task.md +2 -5
- package/.sinapse-ai/development/tasks/create-workflow.md +2 -5
- package/.sinapse-ai/development/tasks/db-analyze-hotpaths.md +1 -8
- package/.sinapse-ai/development/tasks/db-apply-migration.md +1 -8
- package/.sinapse-ai/development/tasks/db-bootstrap.md +1 -8
- package/.sinapse-ai/development/tasks/db-domain-modeling.md +1 -8
- package/.sinapse-ai/development/tasks/db-dry-run.md +1 -8
- package/.sinapse-ai/development/tasks/db-env-check.md +1 -8
- package/.sinapse-ai/development/tasks/db-explain.md +1 -8
- package/.sinapse-ai/development/tasks/db-impersonate.md +1 -8
- package/.sinapse-ai/development/tasks/db-load-csv.md +1 -8
- package/.sinapse-ai/development/tasks/db-policy-apply.md +1 -8
- package/.sinapse-ai/development/tasks/db-rls-audit.md +1 -8
- package/.sinapse-ai/development/tasks/db-rollback.md +1 -8
- package/.sinapse-ai/development/tasks/db-run-sql.md +1 -8
- package/.sinapse-ai/development/tasks/db-schema-audit.md +1 -8
- package/.sinapse-ai/development/tasks/db-seed.md +1 -8
- package/.sinapse-ai/development/tasks/db-smoke-test.md +1 -8
- package/.sinapse-ai/development/tasks/db-snapshot.md +1 -8
- package/.sinapse-ai/development/tasks/db-squad-integration.md +1 -8
- package/.sinapse-ai/development/tasks/db-supabase-setup.md +1 -8
- package/.sinapse-ai/development/tasks/db-verify-order.md +1 -8
- package/.sinapse-ai/development/tasks/deprecate-component.md +3 -3
- package/.sinapse-ai/development/tasks/dev-apply-qa-fixes.md +3 -3
- package/.sinapse-ai/development/tasks/dev-backlog-debt.md +3 -3
- package/.sinapse-ai/development/tasks/dev-develop-story.md +1 -1
- package/.sinapse-ai/development/tasks/dev-improve-code-quality.md +3 -3
- package/.sinapse-ai/development/tasks/dev-optimize-performance.md +3 -3
- package/.sinapse-ai/development/tasks/dev-suggest-refactoring.md +3 -3
- package/.sinapse-ai/development/tasks/dev-validate-next-story.md +3 -3
- package/.sinapse-ai/development/tasks/document-project.md +3 -3
- package/.sinapse-ai/development/tasks/environment-bootstrap.md +0 -4
- package/.sinapse-ai/development/tasks/execute-checklist.md +3 -3
- package/.sinapse-ai/development/tasks/export-design-tokens-dtcg.md +3 -3
- package/.sinapse-ai/development/tasks/extend-pattern.md +1 -8
- package/.sinapse-ai/development/tasks/extract-tokens.md +3 -3
- package/.sinapse-ai/development/tasks/facilitate-brainstorming-session.md +1 -1
- package/.sinapse-ai/development/tasks/generate-ai-frontend-prompt.md +2 -5
- package/.sinapse-ai/development/tasks/generate-documentation.md +2 -5
- package/.sinapse-ai/development/tasks/generate-migration-strategy.md +2 -5
- package/.sinapse-ai/development/tasks/generate-shock-report.md +2 -5
- package/.sinapse-ai/development/tasks/github-devops-github-pr-automation.md +3 -3
- package/.sinapse-ai/development/tasks/github-devops-repository-cleanup.md +3 -3
- package/.sinapse-ai/development/tasks/github-devops-version-management.md +3 -3
- package/.sinapse-ai/development/tasks/improve-self.md +1 -16
- package/.sinapse-ai/development/tasks/index-docs.md +1 -4
- package/.sinapse-ai/development/tasks/init-project-status.md +1 -7
- package/.sinapse-ai/development/tasks/integrate-squad.md +3 -3
- package/.sinapse-ai/development/tasks/kb-mode-interaction.md +3 -3
- package/.sinapse-ai/development/tasks/learn-patterns.md +3 -3
- package/.sinapse-ai/development/tasks/modify-agent.md +1 -8
- package/.sinapse-ai/development/tasks/modify-task.md +1 -8
- package/.sinapse-ai/development/tasks/modify-workflow.md +1 -8
- package/.sinapse-ai/development/tasks/po-backlog-add.md +3 -3
- package/.sinapse-ai/development/tasks/po-manage-story-backlog.md +3 -3
- package/.sinapse-ai/development/tasks/po-pull-story-from-clickup.md +3 -3
- package/.sinapse-ai/development/tasks/po-pull-story.md +3 -3
- package/.sinapse-ai/development/tasks/po-stories-index.md +3 -3
- package/.sinapse-ai/development/tasks/po-sync-story-to-clickup.md +3 -3
- package/.sinapse-ai/development/tasks/po-sync-story.md +3 -3
- package/.sinapse-ai/development/tasks/pr-automation.md +1 -1
- package/.sinapse-ai/development/tasks/propose-modification.md +3 -3
- package/.sinapse-ai/development/tasks/qa-backlog-add-followup.md +1 -8
- package/.sinapse-ai/development/tasks/qa-create-fix-request.md +1 -4
- package/.sinapse-ai/development/tasks/qa-gate.md +1 -8
- package/.sinapse-ai/development/tasks/qa-generate-tests.md +1 -8
- package/.sinapse-ai/development/tasks/qa-nfr-assess.md +1 -8
- package/.sinapse-ai/development/tasks/qa-review-proposal.md +1 -8
- package/.sinapse-ai/development/tasks/qa-review-story.md +1 -8
- package/.sinapse-ai/development/tasks/qa-risk-profile.md +1 -8
- package/.sinapse-ai/development/tasks/qa-run-tests.md +1 -8
- package/.sinapse-ai/development/tasks/qa-test-design.md +1 -8
- package/.sinapse-ai/development/tasks/qa-trace-requirements.md +1 -8
- package/.sinapse-ai/development/tasks/release-management.md +1 -1
- package/.sinapse-ai/development/tasks/security-audit.md +1 -4
- package/.sinapse-ai/development/tasks/security-scan.md +1 -4
- package/.sinapse-ai/development/tasks/setup-database.md +2 -11
- package/.sinapse-ai/development/tasks/setup-design-system.md +2 -11
- package/.sinapse-ai/development/tasks/shard-doc.md +3 -3
- package/.sinapse-ai/development/tasks/sm-create-next-story.md +3 -3
- package/.sinapse-ai/development/tasks/spec-gather-requirements.md +11 -0
- package/.sinapse-ai/development/tasks/sync-documentation.md +1 -6
- package/.sinapse-ai/development/tasks/tailwind-upgrade.md +3 -3
- package/.sinapse-ai/development/tasks/test-as-user.md +3 -3
- package/.sinapse-ai/development/tasks/undo-last.md +2 -5
- package/.sinapse-ai/development/tasks/update-manifest.md +1 -8
- package/.sinapse-ai/development/tasks/ux-create-wireframe.md +1 -1
- package/.sinapse-ai/development/tasks/ux-ds-scan-artifact.md +3 -3
- package/.sinapse-ai/development/tasks/ux-user-research.md +3 -3
- package/.sinapse-ai/development/tasks/validate-next-story.md +1 -8
- package/.sinapse-ai/development/templates/approval-table.md +106 -0
- package/.sinapse-ai/development/templates/chrome-brain/scripts/chrome-ensure.cjs +1 -1
- package/.sinapse-ai/development/workflows/spec-pipeline.yaml +1 -0
- package/.sinapse-ai/git-hooks/post-commit +0 -0
- package/.sinapse-ai/git-hooks/pre-commit +0 -0
- package/.sinapse-ai/git-hooks/pre-push +0 -0
- package/.sinapse-ai/infrastructure/scripts/changelog-generator.js +5 -1
- package/.sinapse-ai/infrastructure/scripts/pattern-extractor.js +11 -2
- package/.sinapse-ai/infrastructure/scripts/test-utilities.js +34 -13
- package/.sinapse-ai/infrastructure/scripts/usage-analytics.js +9 -5
- package/.sinapse-ai/infrastructure/scripts/validate-claude-integration.js +10 -2
- package/.sinapse-ai/install-manifest.yaml +364 -320
- package/.sinapse-ai/lib/build.json +1 -0
- package/.sinapse-ai/product/templates/personalized-task-template-v2.md +4 -2
- package/.sinapse-ai/product/templates/prd-tmpl.yaml +6 -2
- package/.sinapse-ai/product/templates/statusline/statusline-script.js +7 -3
- package/CHANGELOG.md +85 -7
- package/README.en.md +5 -5
- package/README.md +5 -5
- package/bin/cli.js +1 -1
- package/bin/commands/install.js +288 -114
- package/bin/commands/local.js +11 -0
- package/bin/lib/command-generator.js +31 -2
- package/bin/sinapse.js +121 -0
- package/docs/README.md +1 -1
- package/docs/agent-reference-guide.md +1 -1
- package/docs/community/README-community-snippet-core.md +1 -1
- package/docs/community/README-community-snippet-mcp.md +1 -1
- package/docs/community/README-community-snippet-squads.md +1 -1
- package/docs/examples/quickstart-recording.md +1 -1
- package/docs/framework/README.md +1 -1
- package/docs/framework/architecture-overview.md +1 -0
- package/docs/framework/atlas/OPERATING-ATLAS.md +537 -0
- package/docs/framework/atlas/README.md +34 -0
- package/docs/framework/atlas/atlas-data.json +2810 -0
- package/docs/framework/atlas/atlas.html +392 -0
- package/docs/framework/coding-standards.md +1 -1
- package/docs/framework/core-architecture.md +1 -1
- package/docs/framework/guiding-principles.md +1 -1
- package/docs/framework/source-tree.md +1 -1
- package/docs/framework/tech-stack.md +1 -1
- package/docs/framework/versioning-and-releases.md +1 -1
- package/docs/getting-started.md +1 -1
- package/docs/guides/agent-reference.md +1 -1
- package/docs/guides/agent-selection-guide.md +1 -1
- package/docs/guides/api-reference.md +1 -1
- package/docs/guides/contextual-greeting-system-guide.md +1 -1
- package/docs/guides/contributing-squads.md +1 -1
- package/docs/guides/development-setup.md +1 -1
- package/docs/guides/git-workflow-guide.md +1 -1
- package/docs/guides/installation-troubleshooting.md +1 -1
- package/docs/guides/llm-routing.md +1 -1
- package/docs/guides/mcp-global-setup.md +1 -1
- package/docs/guides/meta-agent-commands.md +1 -1
- package/docs/guides/project-status-feature.md +1 -1
- package/docs/guides/quality-dashboard.md +1 -1
- package/docs/guides/quality-gates.md +1 -1
- package/docs/guides/security-hardening.md +1 -1
- package/docs/guides/service-discovery.md +19 -22
- package/docs/guides/squad-examples/README.md +1 -1
- package/docs/guides/squad-migration.md +1 -1
- package/docs/guides/squads-guide.md +1 -1
- package/docs/guides/squads-overview.md +10 -13
- package/docs/guides/template-engine-v2.md +1 -1
- package/docs/guides/testing-guide.md +1 -1
- package/docs/guides/user-guide.md +30 -26
- package/docs/installation/README.md +3 -3
- package/docs/installation/faq.md +1 -1
- package/docs/installation/linux.md +2 -2
- package/docs/installation/macos.md +1 -1
- package/docs/installation/npx-install.md +1 -1
- package/docs/installation/troubleshooting.md +1 -1
- package/docs/installation/uninstallation.md +1 -1
- package/docs/installation/v4-quick-start.md +1 -1
- package/docs/installation/windows.md +2 -2
- package/docs/pt/CHANGELOG.md +1 -1
- package/docs/pt/DOCUMENTATION-ROADMAP.md +1 -1
- package/docs/pt/ENVIRONMENT.md +1 -1
- package/docs/pt/FEATURE_PROCESS.md +2 -2
- package/docs/pt/GUIDING-PRINCIPLES.md +2 -2
- package/docs/pt/agent-reference-guide.md +3 -3
- package/docs/pt/architecture/ARCHITECTURE-INDEX.md +2 -2
- package/docs/pt/architecture/ade-architecture.md +1 -1
- package/docs/pt/architecture/agent-config-audit.md +1 -1
- package/docs/pt/architecture/agent-responsibility-matrix.md +1 -1
- package/docs/pt/architecture/agent-tool-integration-guide.md +1 -1
- package/docs/pt/architecture/ci-cd.md +1 -1
- package/docs/pt/architecture/coding-standards.md +1 -1
- package/docs/pt/architecture/contribution-workflow-research.md +1 -1
- package/docs/pt/architecture/dashboard-architecture.md +1 -1
- package/docs/pt/architecture/dashboard-realtime.md +1 -1
- package/docs/pt/architecture/hcs-check-specifications.md +1 -1
- package/docs/pt/architecture/hcs-execution-modes.md +1 -1
- package/docs/pt/architecture/hcs-self-healing-spec.md +1 -1
- package/docs/pt/architecture/high-level-architecture.md +1 -1
- package/docs/pt/architecture/introduction.md +1 -1
- package/docs/pt/architecture/mcp-api-keys-management.md +3 -3
- package/docs/pt/architecture/mcp-system-diagrams.md +1 -1
- package/docs/pt/architecture/module-system.md +4 -4
- package/docs/pt/architecture/multi-repo-strategy.md +2 -2
- package/docs/pt/architecture/source-tree.md +1 -1
- package/docs/pt/architecture/squad-improvement-analysis.md +1 -1
- package/docs/pt/architecture/squad-improvement-recommended-approach.md +1 -1
- package/docs/pt/architecture/tech-stack.md +1 -1
- package/docs/pt/architecture/utility-integration-guide.md +1 -1
- package/docs/pt/code-of-conduct.md +1 -1
- package/docs/pt/community/README-community-snippet-core.md +1 -1
- package/docs/pt/community/README-community-snippet-mcp.md +2 -2
- package/docs/pt/contributing.md +7 -7
- package/docs/pt/core-architecture.md +1 -1
- package/docs/pt/docker-mcp-setup.md +1 -1
- package/docs/pt/framework/README.md +1 -1
- package/docs/pt/framework/coding-standards.md +1 -1
- package/docs/pt/framework/source-tree.md +1 -1
- package/docs/pt/framework/tech-stack.md +1 -1
- package/docs/pt/getting-started.md +1 -1
- package/docs/pt/git-workflow-guide.md +1 -1
- package/docs/pt/guides/README.md +3 -3
- package/docs/pt/guides/agent-selection-guide.md +2 -2
- package/docs/pt/guides/api-reference.md +1 -1
- package/docs/pt/guides/contextual-greeting-system-guide.md +1 -1
- package/docs/pt/guides/contributing-squads.md +1 -1
- package/docs/pt/guides/development-setup.md +1 -1
- package/docs/pt/guides/installation-troubleshooting.md +1 -1
- package/docs/pt/guides/llm-routing.md +1 -1
- package/docs/pt/guides/mcp/desktop-commander.md +1 -1
- package/docs/pt/guides/mcp/docker-gateway-tutorial.md +1 -1
- package/docs/pt/guides/mcp-global-setup.md +1 -1
- package/docs/pt/guides/project-status-feature.md +1 -1
- package/docs/pt/guides/quality-dashboard.md +1 -1
- package/docs/pt/guides/quality-gates.md +1 -1
- package/docs/pt/guides/security-hardening.md +2 -2
- package/docs/pt/guides/service-discovery.md +19 -22
- package/docs/pt/guides/squad-examples/README.md +1 -1
- package/docs/pt/guides/squad-migration.md +1 -1
- package/docs/pt/guides/squads-guide.md +1 -1
- package/docs/pt/guides/squads-overview.md +11 -13
- package/docs/pt/guides/template-engine-v2.md +1 -1
- package/docs/pt/guides/testing-guide.md +3 -3
- package/docs/pt/guides/user-guide.md +30 -26
- package/docs/pt/guides/workflows-guide.md +1 -1
- package/docs/pt/how-to-contribute-with-pull-requests.md +1 -1
- package/docs/pt/ide-integration.md +2 -2
- package/docs/pt/installation/README.md +1 -1
- package/docs/pt/installation/faq.md +1 -1
- package/docs/pt/installation/linux.md +1 -1
- package/docs/pt/installation/macos.md +1 -1
- package/docs/pt/installation/troubleshooting.md +1 -1
- package/docs/pt/installation/v4-quick-start.md +1 -1
- package/docs/pt/installation/windows.md +1 -1
- package/docs/pt/meta-agent-commands.md +1 -1
- package/docs/pt/migration-guide.md +1 -1
- package/docs/pt/npx-install.md +1 -1
- package/docs/pt/performance-tuning-guide.md +1 -1
- package/docs/pt/platforms/claude-code.md +2 -2
- package/docs/pt/roadmap.md +2 -2
- package/docs/pt/security-best-practices.md +2 -2
- package/docs/pt/security.md +1 -1
- package/docs/pt/sinapse-nomenclature-specification.md +1 -1
- package/docs/pt/troubleshooting.md +1 -1
- package/docs/pt/uninstallation.md +1 -1
- package/docs/pt/versioning-and-releases.md +1 -1
- package/docs/security/overview.md +1 -1
- package/docs/security/security-best-practices.md +2 -2
- package/docs/sinapse-workflows/README.md +1 -1
- package/package.json +2 -1
- package/packages/installer/package.json +1 -0
- package/packages/installer/src/wizard/feedback.js +18 -2
- package/packages/installer/src/wizard/i18n.js +78 -0
- package/packages/installer/src/wizard/ide-config-generator.js +14 -9
- package/packages/installer/src/wizard/index.js +16 -16
- package/packages/installer/src/wizard/validation/report-generator.js +22 -21
- package/packages/installer/src/wizard/validation/troubleshooting-system.js +19 -13
- package/scripts/gen-agent-badges.js +1 -1
- package/scripts/install-chrome-brain.sh +2 -2
- package/scripts/package-synapse.js +14 -5
- package/scripts/prepare-hooks.js +19 -0
- package/scripts/validate-agent-codenames.js +174 -0
- package/scripts/validate-all.js +1 -0
- package/scripts/validate-no-personal-leaks.js +24 -9
- package/sinapse/agents/sinapse-orqx.md +5 -5
- package/sinapse/agents/snps-orqx.md +5 -5
- package/squads/squad-brand/agents/brand-creative-engineer.md +5 -5
- package/squads/squad-brand/squad.yaml +6 -6
- package/squads/squad-content/agents/content-engineer.md +7 -7
- package/squads/squad-content/squad.yaml +5 -5
- package/squads/squad-copy/knowledge-base/consequence-headline-patterns.md +2 -2
- package/squads/squad-courses/agents/production-director.md +5 -5
- package/squads/squad-courses/squad.yaml +1 -1
- package/docs/guides/hooks-two-layers.md +0 -66
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* validate-agent-codenames — AuditFinding AF-20260629 #32
|
|
4
|
+
*
|
|
5
|
+
* Rejects DUPLICATE persona codenames (the `name:` field) shared across two or
|
|
6
|
+
* more DISTINCT agents. A codename is an agent's public identity (Pixel, Litmus,
|
|
7
|
+
* Meridian, ...); two unrelated agents answering to the same codename is a
|
|
8
|
+
* collision that confuses routing, selos and the agent badges.
|
|
9
|
+
*
|
|
10
|
+
* Scope (sources scanned):
|
|
11
|
+
* - squads/{squad}/agents/*.md (squad specialists + orqx)
|
|
12
|
+
* - sinapse/agents/*.md (master squad)
|
|
13
|
+
* - .sinapse-ai/development/agents/*.md (framework core agents)
|
|
14
|
+
*
|
|
15
|
+
* Codename extraction: the FIRST quoted `name: "X"` in the file. In every agent
|
|
16
|
+
* format the persona block sits at the top, so the first quoted name is the
|
|
17
|
+
* codename — knowledge-base `name:` entries (mental models, frameworks) appear
|
|
18
|
+
* far below and are intentionally ignored. Files with no quoted `name:` (table /
|
|
19
|
+
* frontmatter-only formats) are skipped — there is no codename to compare.
|
|
20
|
+
*
|
|
21
|
+
* Allow-list: the master orchestrator (Imperator) is intentionally registered
|
|
22
|
+
* under multiple entry-point files (snps-orqx / sinapse-orqx) — same logical
|
|
23
|
+
* agent, dual register (Constitution Article XI). It is NOT a collision.
|
|
24
|
+
*
|
|
25
|
+
* Exit codes:
|
|
26
|
+
* 0 every codename is unique (modulo the allow-list)
|
|
27
|
+
* 1 one or more codenames are shared by distinct agents
|
|
28
|
+
*
|
|
29
|
+
* Usage:
|
|
30
|
+
* node scripts/validate-agent-codenames.js
|
|
31
|
+
* node scripts/validate-agent-codenames.js --json
|
|
32
|
+
* node scripts/validate-agent-codenames.js --quiet
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
'use strict';
|
|
36
|
+
|
|
37
|
+
const fs = require('fs');
|
|
38
|
+
const path = require('path');
|
|
39
|
+
|
|
40
|
+
const PROJECT_ROOT = path.resolve(__dirname, '..');
|
|
41
|
+
|
|
42
|
+
// Source directories that hold agent definition files.
|
|
43
|
+
const AGENT_DIRS = [
|
|
44
|
+
path.join(PROJECT_ROOT, 'sinapse', 'agents'),
|
|
45
|
+
path.join(PROJECT_ROOT, '.sinapse-ai', 'development', 'agents'),
|
|
46
|
+
];
|
|
47
|
+
const SQUADS_DIR = path.join(PROJECT_ROOT, 'squads');
|
|
48
|
+
|
|
49
|
+
// Codenames allowed to appear in more than one file because they are the SAME
|
|
50
|
+
// logical agent registered under multiple alias files (dual register).
|
|
51
|
+
const ALLOWED_DUPLICATES = new Set(['Imperator']);
|
|
52
|
+
|
|
53
|
+
// Non-agent markdown that may live in an agents/ dir.
|
|
54
|
+
const SKIP_FILES = new Set(['README.md', 'MEMORY.md']);
|
|
55
|
+
|
|
56
|
+
function parseArgs(argv = process.argv.slice(2)) {
|
|
57
|
+
const args = new Set(argv);
|
|
58
|
+
return { quiet: args.has('--quiet') || args.has('-q'), json: args.has('--json') };
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function isAgentFile(fileName) {
|
|
62
|
+
return (
|
|
63
|
+
fileName.endsWith('.md') &&
|
|
64
|
+
!SKIP_FILES.has(fileName) &&
|
|
65
|
+
!fileName.startsWith('_')
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function collectAgentDirs() {
|
|
70
|
+
const dirs = [...AGENT_DIRS];
|
|
71
|
+
if (fs.existsSync(SQUADS_DIR)) {
|
|
72
|
+
for (const entry of fs.readdirSync(SQUADS_DIR, { withFileTypes: true })) {
|
|
73
|
+
if (!entry.isDirectory()) continue;
|
|
74
|
+
const agentsDir = path.join(SQUADS_DIR, entry.name, 'agents');
|
|
75
|
+
if (fs.existsSync(agentsDir)) dirs.push(agentsDir);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return dirs;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Extract the agent codename: the first quoted `name: "X"` in the file.
|
|
83
|
+
* @returns {string|null}
|
|
84
|
+
*/
|
|
85
|
+
function extractCodename(content) {
|
|
86
|
+
const match = content.match(/^\s*name:\s*"([^"]+)"\s*$/m);
|
|
87
|
+
return match ? match[1].trim() : null;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
function collectCodenames() {
|
|
91
|
+
const byName = new Map(); // codename -> [relPath, ...]
|
|
92
|
+
for (const dir of collectAgentDirs()) {
|
|
93
|
+
let files;
|
|
94
|
+
try {
|
|
95
|
+
files = fs.readdirSync(dir).filter(isAgentFile);
|
|
96
|
+
} catch {
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
for (const file of files) {
|
|
100
|
+
const filePath = path.join(dir, file);
|
|
101
|
+
let content;
|
|
102
|
+
try {
|
|
103
|
+
content = fs.readFileSync(filePath, 'utf8');
|
|
104
|
+
} catch {
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
const codename = extractCodename(content);
|
|
108
|
+
if (!codename) continue;
|
|
109
|
+
const relPath = path.relative(PROJECT_ROOT, filePath).replace(/\\/g, '/');
|
|
110
|
+
if (!byName.has(codename)) byName.set(codename, []);
|
|
111
|
+
byName.get(codename).push(relPath);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return byName;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
function findCollisions(byName) {
|
|
118
|
+
const collisions = [];
|
|
119
|
+
for (const [codename, files] of byName) {
|
|
120
|
+
if (files.length > 1 && !ALLOWED_DUPLICATES.has(codename)) {
|
|
121
|
+
collisions.push({ codename, files: files.sort() });
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return collisions.sort((a, b) => a.codename.localeCompare(b.codename));
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
function formatReport(byName, collisions) {
|
|
128
|
+
const lines = [];
|
|
129
|
+
const totalAgents = [...byName.values()].reduce((n, f) => n + f.length, 0);
|
|
130
|
+
lines.push(`Scanned ${totalAgents} agent file(s) with a codename; ${byName.size} distinct codename(s).`);
|
|
131
|
+
if (collisions.length === 0) {
|
|
132
|
+
lines.push('OK — every codename is unique (master dual-register allow-listed).');
|
|
133
|
+
return lines.join('\n');
|
|
134
|
+
}
|
|
135
|
+
lines.push('');
|
|
136
|
+
lines.push(`FAIL — ${collisions.length} duplicate codename(s) found:`);
|
|
137
|
+
for (const c of collisions) {
|
|
138
|
+
lines.push(` "${c.codename}" used by ${c.files.length} agents:`);
|
|
139
|
+
for (const f of c.files) lines.push(` - ${f}`);
|
|
140
|
+
}
|
|
141
|
+
lines.push('');
|
|
142
|
+
lines.push('Fix: rename the least-canonical side to a unique codename.');
|
|
143
|
+
return lines.join('\n');
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
function main() {
|
|
147
|
+
const args = parseArgs();
|
|
148
|
+
const byName = collectCodenames();
|
|
149
|
+
const collisions = findCollisions(byName);
|
|
150
|
+
|
|
151
|
+
if (args.json) {
|
|
152
|
+
console.log(JSON.stringify({ collisions, distinct: byName.size }, null, 2));
|
|
153
|
+
} else if (!args.quiet) {
|
|
154
|
+
console.log('=== validate-agent-codenames ===');
|
|
155
|
+
console.log(formatReport(byName, collisions));
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
return collisions.length > 0 ? 1 : 0;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
if (require.main === module) {
|
|
162
|
+
process.exitCode = main();
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
module.exports = {
|
|
166
|
+
parseArgs,
|
|
167
|
+
extractCodename,
|
|
168
|
+
collectAgentDirs,
|
|
169
|
+
collectCodenames,
|
|
170
|
+
findCollisions,
|
|
171
|
+
formatReport,
|
|
172
|
+
main,
|
|
173
|
+
ALLOWED_DUPLICATES,
|
|
174
|
+
};
|
package/scripts/validate-all.js
CHANGED
|
@@ -54,6 +54,7 @@ const GUARDS = [
|
|
|
54
54
|
{ name: 'manifest:parity', script: 'validate:manifest:parity' },
|
|
55
55
|
{ name: 'squad-yaml', script: 'validate:squad-yaml' },
|
|
56
56
|
{ name: 'squad-orqx', script: 'validate:squad-orqx' },
|
|
57
|
+
{ name: 'agent-codenames', script: 'validate:agent-codenames' },
|
|
57
58
|
];
|
|
58
59
|
|
|
59
60
|
/**
|
|
@@ -106,12 +106,14 @@ const BLOCKED_PATTERNS = [
|
|
|
106
106
|
{
|
|
107
107
|
pattern: /C:\\Users\\Caio[ ]?Imori/i,
|
|
108
108
|
description: 'Absolute Windows path containing maintainer name',
|
|
109
|
-
suggestion: 'Use {REPO_ROOT} placeholder or relative paths',
|
|
109
|
+
suggestion: 'Use {REPO_ROOT} placeholder, process.cwd(), or relative paths',
|
|
110
|
+
always: true, // a hardcoded personal path is never acceptable — even in archive/allowlisted files
|
|
110
111
|
},
|
|
111
112
|
{
|
|
112
113
|
pattern: /OneDrive[\\/].*Caio[ ]?Imori/i,
|
|
113
114
|
description: 'OneDrive path containing maintainer name',
|
|
114
115
|
suggestion: 'Remove or use {VAULT_ROOT} placeholder',
|
|
116
|
+
always: true, // a personal vault path is never acceptable anywhere
|
|
115
117
|
},
|
|
116
118
|
{
|
|
117
119
|
pattern: /Caio can (reactivate|activate|approve|reject|merge|deploy)/i,
|
|
@@ -135,7 +137,15 @@ function isAllowed(filePath) {
|
|
|
135
137
|
// real leak. Everything else (framework internals, squad agents, internal
|
|
136
138
|
// docs) is intentionally OUT of scope.
|
|
137
139
|
const CONCEPT_FILE_SCOPES = new Set(['README.md', 'docs/getting-started.md']);
|
|
138
|
-
|
|
140
|
+
// The atlas SOURCE (hand-authored "how SINAPSE works" flows/renderers) is a
|
|
141
|
+
// public surface and must describe the framework generically — never naming the
|
|
142
|
+
// maintainer's private grounding (Second Brain vault, personal/client DS). Only
|
|
143
|
+
// the source is scoped here, NOT the generated output (docs/framework/atlas/*),
|
|
144
|
+
// which aggregates squad/workflow descriptions that legitimately use generic
|
|
145
|
+
// deliverable terms like "brandbook".
|
|
146
|
+
const CONCEPT_PREFIX_SCOPES = [
|
|
147
|
+
'packages/installer/', 'bin/', 'docs/pt/', 'docs/en/', '.sinapse-ai/core/atlas/',
|
|
148
|
+
];
|
|
139
149
|
|
|
140
150
|
function isConceptScoped(filePath) {
|
|
141
151
|
const normalized = filePath.replace(/\\/g, '/');
|
|
@@ -161,9 +171,9 @@ const CONCEPT_PATTERNS = [
|
|
|
161
171
|
suggestion: 'Describe generically (e.g. "a session-start grounding hook") — do not name the private mechanism',
|
|
162
172
|
},
|
|
163
173
|
{
|
|
164
|
-
pattern: /\bsecond-brain\b/i,
|
|
165
|
-
description: "Maintainer's private knowledge base (Second
|
|
166
|
-
suggestion: 'Generalize to "external memory source
|
|
174
|
+
pattern: /\bsecond[ -]brain\b/i,
|
|
175
|
+
description: "Maintainer's private knowledge base (Second Brain) leaked to user-facing surface",
|
|
176
|
+
suggestion: 'Generalize to "knowledge base" / "external memory source" — do not name the private vault',
|
|
167
177
|
},
|
|
168
178
|
{
|
|
169
179
|
pattern: /\bbrandbook\b/i,
|
|
@@ -244,7 +254,7 @@ function getTrackedFiles() {
|
|
|
244
254
|
return out.split('\n').filter(Boolean);
|
|
245
255
|
}
|
|
246
256
|
|
|
247
|
-
function scanFile(filePath) {
|
|
257
|
+
function scanFile(filePath, rules = BLOCKED_PATTERNS) {
|
|
248
258
|
const fullPath = path.join(ROOT, filePath);
|
|
249
259
|
if (!fs.existsSync(fullPath)) return [];
|
|
250
260
|
const content = fs.readFileSync(fullPath, 'utf8');
|
|
@@ -252,7 +262,7 @@ function scanFile(filePath) {
|
|
|
252
262
|
const violations = [];
|
|
253
263
|
for (let i = 0; i < lines.length; i++) {
|
|
254
264
|
const line = lines[i];
|
|
255
|
-
for (const rule of
|
|
265
|
+
for (const rule of rules) {
|
|
256
266
|
const match = line.match(rule.pattern);
|
|
257
267
|
if (match) {
|
|
258
268
|
violations.push({
|
|
@@ -278,9 +288,14 @@ function run() {
|
|
|
278
288
|
if (!isTextFile(file)) continue;
|
|
279
289
|
|
|
280
290
|
// CHECK 1 — operational personal references ("Caio" literals, paths).
|
|
281
|
-
//
|
|
291
|
+
// `always` patterns (hardcoded personal/vault paths) are checked on EVERY
|
|
292
|
+
// file — they are never acceptable, not even in archive/allowlisted docs.
|
|
293
|
+
// The remaining patterns are scanned across the tree except the
|
|
294
|
+
// authorship/history allow-list.
|
|
295
|
+
const alwaysRules = BLOCKED_PATTERNS.filter((r) => r.always);
|
|
296
|
+
allViolations.push(...scanFile(file, alwaysRules));
|
|
282
297
|
if (!isAllowed(file)) {
|
|
283
|
-
allViolations.push(...scanFile(file));
|
|
298
|
+
allViolations.push(...scanFile(file, BLOCKED_PATTERNS.filter((r) => !r.always)));
|
|
284
299
|
}
|
|
285
300
|
|
|
286
301
|
// CHECK 2 — conceptual / business leaks, scoped ONLY to user-facing
|
|
@@ -291,7 +291,7 @@ routing_table:
|
|
|
291
291
|
orchestrator: copy-orqx (Quill)
|
|
292
292
|
invocation: "/copywriting:agents:copy-orqx"
|
|
293
293
|
domain: "Copywriting, persuasao, headlines, landing pages, email copy, ads copy"
|
|
294
|
-
agents:
|
|
294
|
+
agents: 13
|
|
295
295
|
tasks: 81
|
|
296
296
|
keywords: ["copy", "copywriting", "headline", "persuasao", "CTA", "landing page", "email", "anuncio", "ad copy", "sales page", "VSL", "script"]
|
|
297
297
|
|
|
@@ -318,7 +318,7 @@ routing_table:
|
|
|
318
318
|
orchestrator: finance-orqx (Ledger)
|
|
319
319
|
invocation: "/finance:agents:finance-orqx"
|
|
320
320
|
domain: "Inteligencia financeira, pricing, P&L, budget, unit economics, financial modeling"
|
|
321
|
-
agents:
|
|
321
|
+
agents: 8
|
|
322
322
|
tasks: 45
|
|
323
323
|
keywords: ["financeiro", "finance", "pricing", "P&L", "budget", "unit economics", "modelo financeiro", "receita", "custo", "margem", "ROI", "CAC", "LTV"]
|
|
324
324
|
|
|
@@ -363,7 +363,7 @@ routing_table:
|
|
|
363
363
|
orchestrator: swarm-orqx (Nexus)
|
|
364
364
|
invocation: "/claude:agents:swarm-orqx"
|
|
365
365
|
domain: "Claude Code mastery, prompt engineering, MCP, automacao, hooks, skills, plugins, agent teams, context engineering"
|
|
366
|
-
agents:
|
|
366
|
+
agents: 8
|
|
367
367
|
tasks: 51
|
|
368
368
|
keywords: ["Claude", "prompt", "MCP", "automacao", "agent", "squad", "Claude Code", "prompt engineering", "tool use", "workflow", "hooks", "skills", "plugins"]
|
|
369
369
|
|
|
@@ -399,7 +399,7 @@ routing_table:
|
|
|
399
399
|
orchestrator: cloning-orqx (Helix)
|
|
400
400
|
invocation: "/cloning:agents:cloning-orqx"
|
|
401
401
|
domain: "Clonagem cognitiva, extracao de DNA mental, geracao de agentes a partir de mentes reais"
|
|
402
|
-
agents:
|
|
402
|
+
agents: 9
|
|
403
403
|
tasks: 54
|
|
404
404
|
keywords: ["clone", "clonagem", "extracao", "DNA cognitivo", "mental model", "heuristic", "transcricao", "Whisper", "cognitive profile", "mind", "mente"]
|
|
405
405
|
|
|
@@ -773,7 +773,7 @@ Imperator can provide ecosystem-wide insights by combining capabilities across s
|
|
|
773
773
|
| 16 | cloning | cloning | Helix | Cognitive cloning, mental DNA extraction |
|
|
774
774
|
| 17 | courses | courses | Syllabus | Course creation, workshops, ebooks |
|
|
775
775
|
|
|
776
|
-
**Total ecosystem:** 17 squads, 172 agents, 1,200 tasks
|
|
776
|
+
**Total ecosystem:** 17 squads, 172 agents (160 de squad + 12 core), 1,200 tasks
|
|
777
777
|
|
|
778
778
|
## Cross-Squad Handoffs
|
|
779
779
|
- **Receives from:** Every squad (escalations, cross-squad requests)
|
|
@@ -291,7 +291,7 @@ routing_table:
|
|
|
291
291
|
orchestrator: copy-orqx (Quill)
|
|
292
292
|
invocation: "/copywriting:agents:copy-orqx"
|
|
293
293
|
domain: "Copywriting, persuasao, headlines, landing pages, email copy, ads copy"
|
|
294
|
-
agents:
|
|
294
|
+
agents: 13
|
|
295
295
|
tasks: 81
|
|
296
296
|
keywords: ["copy", "copywriting", "headline", "persuasao", "CTA", "landing page", "email", "anuncio", "ad copy", "sales page", "VSL", "script"]
|
|
297
297
|
|
|
@@ -318,7 +318,7 @@ routing_table:
|
|
|
318
318
|
orchestrator: finance-orqx (Ledger)
|
|
319
319
|
invocation: "/finance:agents:finance-orqx"
|
|
320
320
|
domain: "Inteligencia financeira, pricing, P&L, budget, unit economics, financial modeling"
|
|
321
|
-
agents:
|
|
321
|
+
agents: 8
|
|
322
322
|
tasks: 45
|
|
323
323
|
keywords: ["financeiro", "finance", "pricing", "P&L", "budget", "unit economics", "modelo financeiro", "receita", "custo", "margem", "ROI", "CAC", "LTV"]
|
|
324
324
|
|
|
@@ -363,7 +363,7 @@ routing_table:
|
|
|
363
363
|
orchestrator: swarm-orqx (Nexus)
|
|
364
364
|
invocation: "/claude:agents:swarm-orqx"
|
|
365
365
|
domain: "Claude Code mastery, prompt engineering, MCP, automacao, hooks, skills, plugins, agent teams, context engineering"
|
|
366
|
-
agents:
|
|
366
|
+
agents: 8
|
|
367
367
|
tasks: 51
|
|
368
368
|
keywords: ["Claude", "prompt", "MCP", "automacao", "agent", "squad", "Claude Code", "prompt engineering", "tool use", "workflow", "hooks", "skills", "plugins"]
|
|
369
369
|
|
|
@@ -399,7 +399,7 @@ routing_table:
|
|
|
399
399
|
orchestrator: cloning-orqx (Helix)
|
|
400
400
|
invocation: "/cloning:agents:cloning-orqx"
|
|
401
401
|
domain: "Clonagem cognitiva, extracao de DNA mental, geracao de agentes a partir de mentes reais"
|
|
402
|
-
agents:
|
|
402
|
+
agents: 9
|
|
403
403
|
tasks: 54
|
|
404
404
|
keywords: ["clone", "clonagem", "extracao", "DNA cognitivo", "mental model", "heuristic", "transcricao", "Whisper", "cognitive profile", "mind", "mente"]
|
|
405
405
|
|
|
@@ -773,7 +773,7 @@ Imperator can provide ecosystem-wide insights by combining capabilities across s
|
|
|
773
773
|
| 16 | cloning | cloning | Helix | Cognitive cloning, mental DNA extraction |
|
|
774
774
|
| 17 | courses | courses | Syllabus | Course creation, workshops, ebooks |
|
|
775
775
|
|
|
776
|
-
**Total ecosystem:** 17 squads, 172 agents, 1,200 tasks
|
|
776
|
+
**Total ecosystem:** 17 squads, 172 agents (160 de squad + 12 core), 1,200 tasks
|
|
777
777
|
|
|
778
778
|
## Cross-Squad Handoffs
|
|
779
779
|
- **Receives from:** Every squad (escalations, cross-squad requests)
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# brand-creative-engineer —
|
|
1
|
+
# brand-creative-engineer — Ember
|
|
2
2
|
|
|
3
3
|
```yaml
|
|
4
4
|
agent:
|
|
5
|
-
name: "
|
|
5
|
+
name: "Ember"
|
|
6
6
|
id: "squad-brand/brand-creative-engineer"
|
|
7
7
|
title: "Creative Asset Engineer"
|
|
8
8
|
icon: "🔥"
|
|
@@ -13,9 +13,9 @@ persona_profile:
|
|
|
13
13
|
tone: systematic
|
|
14
14
|
greeting_levels:
|
|
15
15
|
minimal: "🔥 brand-creative-engineer ready"
|
|
16
|
-
named: "🔥
|
|
17
|
-
archetypal: "🔥
|
|
18
|
-
signature_closing: "—
|
|
16
|
+
named: "🔥 Ember (Builder-Creator) ready to create!"
|
|
17
|
+
archetypal: "🔥 Ember the Creator — code is my canvas, AI is my brush."
|
|
18
|
+
signature_closing: "— Ember, criando via codigo e IA 🔥"
|
|
19
19
|
|
|
20
20
|
persona:
|
|
21
21
|
role: "Creative Asset Engineer — cria assets via codigo (SVG, CSS, HTML) e via prompt engineering para APIs generativas"
|
|
@@ -124,7 +124,7 @@ components:
|
|
|
124
124
|
- brand-growth-strategist.md # Catalyst — Alchemist (6 tasks) ★ NEW v3.0
|
|
125
125
|
- brand-culture-architect.md # Ethos — Purpose Guardian (8 tasks) ★ +3 v3.1
|
|
126
126
|
- brand-identity-designer.md # Iris — Artist (13 tasks) ★ +1 v3.2
|
|
127
|
-
- brand-creative-engineer.md #
|
|
127
|
+
- brand-creative-engineer.md # Ember — Builder-Creator (12 tasks) ★ +1 v3.2
|
|
128
128
|
- brand-collateral-designer.md # Vellum — Craftsman (12 tasks) ★ +1 v3.1
|
|
129
129
|
- brand-system-architect.md # Grid — Architect (5 tasks)
|
|
130
130
|
- brand-motion-vfx.md # Flux — Animator (5 tasks)
|
|
@@ -194,7 +194,7 @@ components:
|
|
|
194
194
|
- design-dynamic-identity-system.md # ★ v3.1 — Generative/responsive identity
|
|
195
195
|
- design-illustration-system.md # ★ v3.2 — Brand illustration style, guidelines, AI prompting
|
|
196
196
|
|
|
197
|
-
# ── Creative Engineer (
|
|
197
|
+
# ── Creative Engineer (Ember) — 12 tasks ── ★ +1 v3.2
|
|
198
198
|
- create-svg-logo.md
|
|
199
199
|
- create-icon-set.md
|
|
200
200
|
- create-pattern.md
|
|
@@ -294,7 +294,7 @@ components:
|
|
|
294
294
|
- gestalt-principles.md # Gestalt aplicada a branding e design
|
|
295
295
|
- photography-styles.md # estilos fotograficos, iluminacao, composicao
|
|
296
296
|
|
|
297
|
-
# Creative Engineer (
|
|
297
|
+
# Creative Engineer (Ember) + Identity Designer (Iris)
|
|
298
298
|
- prompt-engineering-visual.md # templates de prompts por categoria de asset
|
|
299
299
|
- 3d-render-styles.md # estilos de render 3D, PBR materials
|
|
300
300
|
- product-categories.md # categorias de produto com specs de mockup
|
|
@@ -434,7 +434,7 @@ brand_value_tracker:
|
|
|
434
434
|
# v3.2.0 (2026-03-13) — Illustration System, Characters & Auto-Learning
|
|
435
435
|
# +3 tasks:
|
|
436
436
|
# 1. design-illustration-system.md (Iris) — Brand illustration style, AI prompting
|
|
437
|
-
# 2. create-brand-characters.md (
|
|
437
|
+
# 2. create-brand-characters.md (Ember) — Characters, avatars, mascots
|
|
438
438
|
# 3. update-brand-preferences.md (Sentinel) — Auto-learning preference tracking
|
|
439
439
|
# +1 knowledge base:
|
|
440
440
|
# - illustration-styles.md — Styles, character design, AI gen, case studies
|
|
@@ -451,13 +451,13 @@ brand_value_tracker:
|
|
|
451
451
|
# 1. define-brand-identity-prism.md (Athena) — Kapferer 6-facet Prism
|
|
452
452
|
# 2. define-sensory-brand-strategy.md (Ethos) — Lindstrom multi-sensory
|
|
453
453
|
# 3. define-cultural-adaptation-guidelines.md (Athena) — Hofstede/Meyer glocal
|
|
454
|
-
# 4. create-digital-ad-templates.md (
|
|
454
|
+
# 4. create-digital-ad-templates.md (Ember) — All platform ad templates
|
|
455
455
|
# 5. design-dynamic-identity-system.md (Iris) — Generative/responsive identity
|
|
456
456
|
# 6. create-brand-training-program.md (Ethos) — Training & certification
|
|
457
457
|
# 7. define-ai-voice-guidelines.md (Athena) — AI/chatbot brand voice
|
|
458
458
|
# 8. create-event-branding.md (Vellum) — Event branding system
|
|
459
459
|
# 9. define-sustainability-branding.md (Ethos) — ESG anti-greenwashing
|
|
460
|
-
# 10. create-creator-toolkit.md (
|
|
460
|
+
# 10. create-creator-toolkit.md (Ember) — Creator/influencer toolkit
|
|
461
461
|
# +1 knowledge base:
|
|
462
462
|
# - cultural-brand-adaptation.md — Hofstede, Meyer, sensibilidades culturais
|
|
463
463
|
# Total: 78 → 88 tasks, 15 → 16 KBs, 117 → 128 files
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# content-engineer —
|
|
1
|
+
# content-engineer — Truss
|
|
2
2
|
|
|
3
3
|
```yaml
|
|
4
4
|
agent:
|
|
5
|
-
name: "
|
|
5
|
+
name: "Truss"
|
|
6
6
|
id: "squad-content/content-engineer"
|
|
7
7
|
title: "Content Structure & Production Engineer"
|
|
8
8
|
icon: "⚡"
|
|
@@ -13,19 +13,19 @@ persona_profile:
|
|
|
13
13
|
tone: precise
|
|
14
14
|
greeting_levels:
|
|
15
15
|
minimal: "⚡ content-engineer ready"
|
|
16
|
-
named: "⚡
|
|
17
|
-
archetypal: "⚡
|
|
18
|
-
signature_closing: "—
|
|
16
|
+
named: "⚡ Truss (Engineer) ready to build content that converts!"
|
|
17
|
+
archetypal: "⚡ Truss the Engineer — structure is invisible when done right, painful when missing."
|
|
18
|
+
signature_closing: "— Truss, engenheirando conteudo ⚡"
|
|
19
19
|
|
|
20
20
|
persona:
|
|
21
21
|
role: "Content Structure & Production Engineer — projeta Espinha Dorsal, estrutura narrativas e escreve conteudo em todos os formatos"
|
|
22
22
|
identity: >
|
|
23
23
|
Engenheiro de conteudo que domina tanto a ARQUITETURA (como um conteudo e
|
|
24
|
-
estruturado) quanto a EXECUCAO (como e escrito).
|
|
24
|
+
estruturado) quanto a EXECUCAO (como e escrito). Truss e a fusao de storyteller
|
|
25
25
|
e wordsmith — porque estrutura sem escrita e esqueleto, e escrita sem estrutura
|
|
26
26
|
e ruido. Cada conteudo comeca com uma Espinha Dorsal (tese-mecanismo-prova-direcao),
|
|
27
27
|
depois ganha estrutura narrativa, depois e escrito respeitando regras de escrita
|
|
28
|
-
e contratos de template.
|
|
28
|
+
e contratos de template. Truss opera em 3 modos: Structure (projetar), Write
|
|
29
29
|
(escrever), Batch (escala).
|
|
30
30
|
core_principles:
|
|
31
31
|
- "Espinha Dorsal obrigatoria — NENHUM conteudo comeca sem tese-mecanismo-prova-direcao"
|
|
@@ -136,7 +136,7 @@ core_concepts:
|
|
|
136
136
|
parte da mesma Espinha Dorsal — TESE (o que defende), MECANISMO (como funciona),
|
|
137
137
|
PROVA (evidencia), DIRECAO (proximo passo). A Espinha Dorsal e format-agnostic:
|
|
138
138
|
mesma espinha → carrossel, thread, reel, blog, newsletter.
|
|
139
|
-
agent: "content-engineer (
|
|
139
|
+
agent: "content-engineer (Truss)"
|
|
140
140
|
knowledge_base: "content-spine-engine.md"
|
|
141
141
|
|
|
142
142
|
template_contract_system:
|
|
@@ -145,7 +145,7 @@ core_concepts:
|
|
|
145
145
|
define: numero de blocos/slides, numero de campos textuais, limites de caracteres
|
|
146
146
|
por campo (min/max), regras de formatacao, specs tecnicas. Contratos sao inviolaveis
|
|
147
147
|
— AI DEVE respeitar limites. Versionados para acompanhar mudancas de plataforma.
|
|
148
|
-
agents: ["content-engineer (
|
|
148
|
+
agents: ["content-engineer (Truss)", "platform-specialist (Morph)", "content-governor (Index)"]
|
|
149
149
|
knowledge_base: "template-contract-system.md"
|
|
150
150
|
template: "template-contract-registry-template.md"
|
|
151
151
|
|
|
@@ -158,7 +158,7 @@ components:
|
|
|
158
158
|
- content-orqx.md # Nexus — Conductor (5 tasks)
|
|
159
159
|
- signal-intelligence.md # Radar — Scout (9 tasks)
|
|
160
160
|
- editorial-strategist.md # North — Navigator (10 tasks)
|
|
161
|
-
- content-engineer.md #
|
|
161
|
+
- content-engineer.md # Truss — Engineer (25 tasks)
|
|
162
162
|
- platform-specialist.md # Morph — Shapeshifter (15 tasks)
|
|
163
163
|
- content-governor.md # Index — Librarian (10 tasks)
|
|
164
164
|
- content-analyst.md # Lens — Analyst (11 tasks)
|
|
@@ -199,7 +199,7 @@ components:
|
|
|
199
199
|
- balance-content-mix.md
|
|
200
200
|
- define-content-kpis.md
|
|
201
201
|
|
|
202
|
-
# ── Content Engineer (
|
|
202
|
+
# ── Content Engineer (Truss) — 25 tasks ──
|
|
203
203
|
# Structure mode
|
|
204
204
|
- design-content-spine.md
|
|
205
205
|
- design-narrative-arc.md
|
|
@@ -285,7 +285,7 @@ components:
|
|
|
285
285
|
- editorial-planning-cycle.yaml # Planejamento editorial periodico
|
|
286
286
|
- content-creation-cycle.yaml # Criacao: brief → producao → QA → publicacao
|
|
287
287
|
- content-audit-cycle.yaml # Auditoria de qualidade e performance
|
|
288
|
-
- performance-feedback-loop.yaml # Retroalimentacao sistemica Lens → Radar/North/
|
|
288
|
+
- performance-feedback-loop.yaml # Retroalimentacao sistemica Lens → Radar/North/Truss
|
|
289
289
|
- onboarding-content-cycle.yaml # Setup de cliente novo: Big Idea → primeiro sprint
|
|
290
290
|
|
|
291
291
|
# ══════════════════════════════════════════════════════════════════════════════
|
|
@@ -43,7 +43,7 @@ Quem entender antes, captura a vantagem. Cria urgencia sem ser explicitamente ur
|
|
|
43
43
|
- "...enquanto a maioria ainda nao percebeu"
|
|
44
44
|
- "...e por que os que entenderam primeiro nao voltam atras"
|
|
45
45
|
|
|
46
|
-
## Padroes de Hook para Social
|
|
46
|
+
## Padroes de Hook para Social
|
|
47
47
|
|
|
48
48
|
### Para conteudo curto (Reels, Stories, Carrossel)
|
|
49
49
|
|
|
@@ -55,7 +55,7 @@ Quem entender antes, captura a vantagem. Cria urgencia sem ser explicitamente ur
|
|
|
55
55
|
| **Mini-alerta** | "Se voce ainda faz [X] manualmente, leia isso." | Urgencia pratica |
|
|
56
56
|
| **Numero concreto** | "Reduzi 40h/mes de operacao para 6h com este workflow." | Prova quantificavel |
|
|
57
57
|
|
|
58
|
-
### Regras de compressao
|
|
58
|
+
### Regras de compressao
|
|
59
59
|
|
|
60
60
|
- **Uma ideia por peca** — se precisa de "alem disso", e outra peca
|
|
61
61
|
- **Hook entendido em 2 segundos** — se precisa reler, e longo demais
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# production-director —
|
|
1
|
+
# production-director — Slate
|
|
2
2
|
|
|
3
3
|
```yaml
|
|
4
4
|
agent:
|
|
5
|
-
name: "
|
|
5
|
+
name: "Slate"
|
|
6
6
|
id: "squad-courses/production-director"
|
|
7
7
|
title: "Video & Audio Production Director"
|
|
8
8
|
icon: "🎬"
|
|
@@ -13,9 +13,9 @@ persona_profile:
|
|
|
13
13
|
tone: practical, production-savvy, detail-oriented
|
|
14
14
|
greeting_levels:
|
|
15
15
|
minimal: "🎬 production-director ready"
|
|
16
|
-
named: "🎬
|
|
17
|
-
archetypal: "🎬
|
|
18
|
-
signature_closing: "—
|
|
16
|
+
named: "🎬 Slate (Director) ready to plan production!"
|
|
17
|
+
archetypal: "🎬 Slate the Director — great content deserves great production."
|
|
18
|
+
signature_closing: "— Slate, dirigindo producao 🎬"
|
|
19
19
|
|
|
20
20
|
persona:
|
|
21
21
|
role: "Production Director — planeja gravacao de video/audio: roteiros, shot lists, setup"
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
# Hooks: arquitetura de duas camadas
|
|
2
|
-
|
|
3
|
-
O SINAPSE-AI tem hooks em dois lugares distintos. Isso é proposital, não bug. Esta nota documenta a separação pra evitar confusão futura (auditoria 2026-05-25 BUG-013).
|
|
4
|
-
|
|
5
|
-
## Camada 1: hooks globais do user (`~/.claude/hooks/`)
|
|
6
|
-
|
|
7
|
-
**Escopo:** Toda sessão Claude Code do Caio, em qualquer projeto.
|
|
8
|
-
|
|
9
|
-
**18 hooks .cjs:**
|
|
10
|
-
|
|
11
|
-
| Hook | Evento | Função |
|
|
12
|
-
|---|---|---|
|
|
13
|
-
| `unified-grounding.cjs` | UserPromptSubmit | Único entry point. Funde 4 geradores: vault-grounding, ds-grounding, build-best-practices, squad-grounding |
|
|
14
|
-
| `vault-grounding.cjs` | gerador (chamado por unified) | Injeta notas do Second Brain por domínio |
|
|
15
|
-
| `ds-anti-pattern-guard.cjs` | PostToolUse | Bloqueia Write/Edit com violações DS (C1-C9) |
|
|
16
|
-
| `build-best-practices.cjs` | gerador | Injeta playbook de construção do Caio |
|
|
17
|
-
| `squad-grounding-router.cjs` | gerador | Detecta squad ativo, injeta DS relacionado |
|
|
18
|
-
| `workspace-routing.cjs` | PreToolUse Bash | Reescreve mkdir/git init fora do Workspace pra path canônico |
|
|
19
|
-
| `vault-project-register.cjs` | PostToolUse Bash | Registra projeto novo no vault |
|
|
20
|
-
| `session-capture.cjs` + `session-capture-worker.cjs` | SessionStart/End | Captura sessões pro cronjob 2:30 BRT enrichment |
|
|
21
|
-
| `auto-checkpoint.cjs` | UserPromptSubmit | Cria checkpoints periódicos |
|
|
22
|
-
| `precompact-session-digest.cjs` | PreCompact | Resume sessão antes de compactar |
|
|
23
|
-
| `code-intel-pretool.cjs` | PreToolUse | Code intelligence prep |
|
|
24
|
-
| `healthcheck.cjs` | manual | Diagnostico setup |
|
|
25
|
-
| `repair.cjs` | manual | Auto-fix problemas |
|
|
26
|
-
| `synapse-engine.cjs` | UserPromptSubmit (subset) | Motor synapse legacy |
|
|
27
|
-
| `terminal-bus.cjs` | UserPromptSubmit | Cross-terminal messaging |
|
|
28
|
-
|
|
29
|
-
**Registrados em `~/.claude/settings.json`:** unified-grounding, session-capture, auto-checkpoint, workspace-routing, vault-project-register, ds-anti-pattern-guard, build-best-practices, chrome-ensure, chrome-brain-log.
|
|
30
|
-
|
|
31
|
-
**Não-registrados (presentes mas sem entry em settings):** code-intel-pretool, healthcheck, repair, precompact-session-digest, synapse-engine. Estes são executados manualmente ou via fluxo específico.
|
|
32
|
-
|
|
33
|
-
## Camada 2: hooks do framework (`<repo>/.claude/hooks/`)
|
|
34
|
-
|
|
35
|
-
**Escopo:** Apenas quando Claude Code está rodando dentro de um repo SINAPSE-AI.
|
|
36
|
-
|
|
37
|
-
**Hooks principais:**
|
|
38
|
-
|
|
39
|
-
| Hook | Evento | Função |
|
|
40
|
-
|---|---|---|
|
|
41
|
-
| `enforce-architecture-first.cjs` | UserPromptSubmit | Bloqueia geração de código sem arquitetura validada |
|
|
42
|
-
| `enforce-delegation.cjs` | UserPromptSubmit | Força orchestrators a delegar pra specialists |
|
|
43
|
-
| `enforce-nsn-guard.cjs` | UserPromptSubmit | NSN mode: bloqueia "não dá pra fazer" sem 3 tentativas |
|
|
44
|
-
| `enforce-story-gate.cjs` | UserPromptSubmit | Bloqueia código sem story Ready |
|
|
45
|
-
| `secret-scanning.cjs` | PreToolUse | Detecta secrets em arquivos antes de commit |
|
|
46
|
-
| `ids-hook.cjs` | PreToolUse | Mantém install-manifest.yaml sincronizado |
|
|
47
|
-
|
|
48
|
-
**Por que separados:** rules do framework (documentation-first, mandatory-delegation, workflow-execution) só fazem sentido dentro de um repo SINAPSE-AI. Aplicar globalmente em todo projeto pequeno seria over-engineering.
|
|
49
|
-
|
|
50
|
-
## Como decidir onde colocar um hook novo
|
|
51
|
-
|
|
52
|
-
| Hook deve rodar em... | Lugar |
|
|
53
|
-
|---|---|
|
|
54
|
-
| Toda sessão do Caio, qualquer projeto | `~/.claude/hooks/` |
|
|
55
|
-
| Apenas dentro de repos SINAPSE-AI | `<repo>/.claude/hooks/` |
|
|
56
|
-
| Toda sessão MAS com config diferente por projeto | `~/.claude/hooks/` + lê config local (`.claude/config.json` do projeto) |
|
|
57
|
-
|
|
58
|
-
## Não duplicar
|
|
59
|
-
|
|
60
|
-
Se um hook precisa rodar em ambas as camadas, criar em uma e o outro lugar **carrega** o primeiro. Não copy-paste. Exemplo: workspace-routing vive em `~/.claude/hooks/` e qualquer projeto que precisar usa via reference.
|
|
61
|
-
|
|
62
|
-
## Refs
|
|
63
|
-
|
|
64
|
-
- `~/.claude/settings.json` — registro dos hooks globais
|
|
65
|
-
- `<repo>/.claude/settings.json` — registro dos hooks do framework
|
|
66
|
-
- Auditoria que gerou esta nota: `docs/audits/2026-05-25-framework-gargalos-audit.md` (BUG-013)
|