conexus 3.2.0__tar.gz → 3.2.2__tar.gz
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.
- {conexus-3.2.0 → conexus-3.2.2}/.claude-plugin/marketplace.json +2 -2
- {conexus-3.2.0 → conexus-3.2.2}/CHANGELOG.md +16 -0
- {conexus-3.2.0 → conexus-3.2.2}/PKG-INFO +1 -1
- conexus-3.2.2/nx/.claude-plugin/plugin.json +11 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/CHANGELOG.md +16 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/agents/architect-planner.md +27 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/agents/codebase-deep-analyzer.md +28 -1
- {conexus-3.2.0 → conexus-3.2.2}/nx/agents/debugger.md +27 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/agents/deep-analyst.md +27 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/agents/deep-research-synthesizer.md +43 -3
- {conexus-3.2.0 → conexus-3.2.2}/nx/agents/knowledge-tidier.md +1 -1
- {conexus-3.2.0 → conexus-3.2.2}/nx/agents/orchestrator.md +1 -1
- {conexus-3.2.0 → conexus-3.2.2}/nx/agents/pdf-chromadb-processor.md +1 -1
- {conexus-3.2.0 → conexus-3.2.2}/nx/agents/plan-enricher.md +1 -1
- {conexus-3.2.0 → conexus-3.2.2}/nx/agents/strategic-planner.md +16 -1
- {conexus-3.2.0 → conexus-3.2.2}/nx/agents/substantive-critic.md +1 -1
- {conexus-3.2.0 → conexus-3.2.2}/nx/agents/test-validator.md +1 -1
- conexus-3.2.2/nx/hooks/scripts/auto-approve-nx-mcp.sh +51 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/rdr-gate/SKILL.md +6 -4
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/rdr-research/SKILL.md +11 -0
- {conexus-3.2.0 → conexus-3.2.2}/pyproject.toml +1 -1
- {conexus-3.2.0 → conexus-3.2.2}/sn/.claude-plugin/plugin.json +1 -1
- conexus-3.2.2/sn/hooks/scripts/auto-approve-sn-mcp.sh +46 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/catalog/link_generator.py +63 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/indexer.py +5 -3
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_catalog_link_generation.py +108 -0
- {conexus-3.2.0 → conexus-3.2.2}/uv.lock +1 -1
- conexus-3.2.0/nx/hooks/scripts/auto-approve-nx-mcp.sh +0 -18
- conexus-3.2.0/sn/hooks/scripts/auto-approve-sn-mcp.sh +0 -18
- {conexus-3.2.0 → conexus-3.2.2}/.beads/.gitignore +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/.beads/README.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/.beads/config.yaml +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/.beads/hooks/post-checkout +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/.beads/hooks/post-merge +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/.beads/hooks/pre-commit +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/.beads/hooks/pre-push +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/.beads/hooks/prepare-commit-msg +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/.beads/interactions.jsonl +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/.beads/issues.jsonl +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/.beads/metadata.json +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/.claude/skills/release.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/.devcontainer/Dockerfile +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/.devcontainer/devcontainer.json +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/.dockerignore +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/.env.example +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/.gitattributes +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/.github/workflows/ci.yml +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/.github/workflows/release.yml +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/.gitignore +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/.markdownlint.json +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/AGENTS.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/CLAUDE.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/Formula/nx.rb +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/LICENSE +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/README.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/README.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/architecture.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/catalog.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/cli-reference.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/configuration.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/contributing.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/getting-started.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/historical.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/memory-and-tasks.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/postmortem/2026-03-23-pdf-index-collection-mismatch.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/postmortem/2026-03-24-pdf-index-fix-not-applied.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/querying-guide.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/README.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/post-mortem/001-rdr-process-validation.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/post-mortem/002-t2-status-synchronization.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/post-mortem/010-t1-http-server.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/post-mortem/011-pdf-ingest-test-coverage.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/post-mortem/012-pdfplumber-extraction-tier.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/post-mortem/014-knowledge-base-retrieval-quality.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/post-mortem/015-indexing-pipeline-rethink.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/post-mortem/016-ast-chunk-line-range-bug.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/post-mortem/017-indexing-progress-reporting.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/post-mortem/018-replace-serve-with-git-hooks.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/post-mortem/023-agent-tool-permissions-audit.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/post-mortem/024-rdr-process-guardrails.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/post-mortem/028-language-registry-unification.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/post-mortem/029-pipeline-versioning.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/post-mortem/049-git-backed-catalog.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/post-mortem/050-catalog-query-integration.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/post-mortem/051-link-lifecycle.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/post-mortem/052-catalog-first-query-routing.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/post-mortem/053-xanadu-fidelity.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/post-mortem/cce-query-model-mismatch.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-001-rdr-process-validation.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-002-t2-status-synchronization.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-004-four-store-architecture.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-005-chromadb-cloud-quota-enforcement.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-006-chunk-size-configuration.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-007-claude-adoption-session-context-and-search-guidance.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-008-nx-workflow-integration.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-009-remove-agentic-and-answer-flags.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-010-t1-scratch-persistent-bounded-store.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-011-pdf-ingest-test-coverage.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-012-pdfplumber-extraction-tier.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-013-remove-nx-pm-layer.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-014-knowledge-base-retrieval-quality.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-015-indexing-pipeline-rethink.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-016-ast-chunk-line-range-bug.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-017-indexing-progress-reporting.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-018-replace-serve-with-git-hooks.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-019-chromadb-transient-retry.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-020-voyage-chromadb-read-timeout.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-021-docling-pdf-extraction.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-022-memory-delete-command.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-023-agent-tool-permissions-audit.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-024-rdr-process-guardrails.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-025-language-agnostic-agents.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-026-hybrid-search-fusion.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-027-search-results-ux.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-028-code-search-recall.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-029-pipeline-versioning.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-030-reliability-hardening.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-031-collection-portability.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-032-indexer-decomposition.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-033-pdf-agent-nx-index-alignment.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-034-mcp-server-agent-storage.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-035-plugin-agent-mcp-tool-access.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-036-post-accept-planning-workflow.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-037-t3-database-consolidation.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-038-local-t3-backend.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-039-claude-code-framework-alignment.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-040-cce-postmortem-gaps-mcp-enhancement.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-040-developer-agent-circuit-breaker.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-041-t1-scratch-inter-agent-context.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-042-agenticscholar-enhancements.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-043-plan-enricher-scope.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-044-math-aware-pdf-extraction.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-045-post-implementation-verification.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-046-mineru-server-backed-extraction.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-047-large-pdf-extraction-resilience.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-048-streaming-pdf-pipeline.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-049-consolidation-plan.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-049-git-backed-catalog.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-050-knowledge-graph-query-planning.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-051-link-lifecycle.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-052-catalog-first-query-routing.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr/rdr-053-xanadu-fidelity.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr-nexus-integration.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr-overview.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr-templates.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/rdr-workflow.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/repo-indexing.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/storage-tiers.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/docs/xanadu-in-nexus.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/.mcp.json +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/README.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/agents/_shared/CONTEXT_PROTOCOL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/agents/_shared/ERROR_HANDLING.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/agents/_shared/MAINTENANCE.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/agents/_shared/README.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/agents/_shared/RELAY_TEMPLATE.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/agents/analytical-operator.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/agents/code-review-expert.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/agents/developer.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/agents/plan-auditor.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/agents/query-planner.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/commands/analyze-code.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/commands/architecture.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/commands/create-plan.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/commands/debug.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/commands/deep-analysis.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/commands/enrich-plan.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/commands/implement.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/commands/knowledge-tidy.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/commands/nx-preflight.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/commands/pdf-process.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/commands/plan-audit.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/commands/rdr-accept.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/commands/rdr-close.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/commands/rdr-create.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/commands/rdr-gate.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/commands/rdr-list.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/commands/rdr-research.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/commands/rdr-show.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/commands/research.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/commands/review-code.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/commands/substantive-critique.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/commands/test-validate.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/hooks/hooks.json +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/hooks/scripts/post_compact_hook.sh +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/hooks/scripts/pre_close_verification_hook.sh +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/hooks/scripts/rdr_hook.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/hooks/scripts/read_verification_config.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/hooks/scripts/session_start_hook.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/hooks/scripts/stop_failure_hook.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/hooks/scripts/stop_verification_hook.sh +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/hooks/scripts/subagent-start.sh +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/hooks/scripts/t2_prefix_scan.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/registry.yaml +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/resources/rdr/README-TEMPLATE.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/resources/rdr/TEMPLATE.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/resources/rdr/post-mortem/TEMPLATE.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/architecture/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/brainstorming-gate/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/cli-controller/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/code-review/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/codebase-analysis/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/debugging/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/deep-analysis/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/development/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/enrich-plan/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/finishing-branch/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/git-worktrees/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/knowledge-tidying/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/nexus/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/nexus/reference.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/orchestration/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/pdf-processing/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/plan-validation/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/query/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/rdr-accept/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/rdr-close/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/rdr-create/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/rdr-list/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/rdr-show/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/receiving-review/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/research-synthesis/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/serena-code-nav/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/strategic-planning/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/substantive-critique/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/test-validation/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/using-nx-skills/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/nx/skills/writing-nx-skills/SKILL.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/scripts/reinstall-tool.sh +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/sn/.mcp.json +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/sn/README.md +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/sn/hooks/hooks.json +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/sn/hooks/scripts/mcp-inject.sh +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/sn/hooks/scripts/session-start.sh +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/__init__.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/bib_enricher.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/catalog/__init__.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/catalog/auto_linker.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/catalog/catalog.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/catalog/catalog_db.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/catalog/consolidation.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/catalog/tumbler.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/checkpoint.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/chunker.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/classifier.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/cli.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/code_indexer.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/commands/__init__.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/commands/_helpers.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/commands/_provision.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/commands/catalog.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/commands/collection.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/commands/config_cmd.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/commands/doctor.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/commands/enrich.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/commands/hook.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/commands/hooks.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/commands/index.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/commands/memory.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/commands/mineru.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/commands/scratch.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/commands/search_cmd.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/commands/store.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/config.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/corpus.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/db/__init__.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/db/chroma_quotas.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/db/local_ef.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/db/t1.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/db/t2.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/db/t3.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/doc_indexer.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/errors.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/exporter.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/formatters.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/frecency.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/hooks.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/index_context.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/indexer_utils.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/languages.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/mcp_server.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/md_chunker.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/pdf_chunker.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/pdf_extractor.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/pipeline_buffer.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/pipeline_stages.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/prose_indexer.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/registry.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/retry.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/ripgrep_cache.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/scoring.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/search_engine.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/session.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/ttl.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/src/nexus/types.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/__init__.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/__snapshots__/test_search_snapshot.ambr +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/benchmarks/__init__.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/benchmarks/corpus.json +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/benchmarks/queries.json +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/benchmarks/test_retrieval_ndcg.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/conftest.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/e2e/auth-login.sh +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/e2e/lib.sh +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/e2e/run.sh +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/e2e/sandbox.sh +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/e2e/scenarios/00_debug_load.sh +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/e2e/scenarios/01_smoke.sh +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/e2e/scenarios/02_sequential_thinking.sh +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/e2e/scenarios/03_skills.sh +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/hooks/__init__.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/hooks/test_permission_request_hooks.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/hooks/test_post_compact_hook.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/hooks/test_pre_close_verification_hook.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/hooks/test_read_verification_config.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/hooks/test_stop_failure_hook.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/hooks/test_stop_verification_hook.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/hooks/test_verification_integration.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_ast_languages.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_auto_linker.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_backfill_hash.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_bib_enricher.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_catalog.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_catalog_backfill.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_catalog_cli.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_catalog_consolidation.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_catalog_db.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_catalog_e2e.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_catalog_git.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_catalog_indexer_hook.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_catalog_jsonl.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_catalog_knowledge_hook.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_catalog_links.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_catalog_mcp.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_catalog_pdf_hook.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_checkpoint.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_chroma_quotas.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_chroma_retry.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_chunker.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_chunker_ast_languages.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_classifier.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_collection_cmd.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_config.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_config_cmd.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_corpus.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_doc_indexer.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_doc_indexer_hash_sync.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_doc_indexer_pagination.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_doctor_cmd.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_doctor_integrity.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_e2e.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_enrich_command.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_exporter.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_formatters.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_frecency.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_git_hooks.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_hooks.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_hybrid_boost.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_index_cmd.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_index_lock.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_index_pdf_batch.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_index_rdr_cmd.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_index_reminder.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_indexer.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_indexer_chunk_flow.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_indexer_e2e.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_indexer_modules.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_integration.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_jsonl.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_languages.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_local_mode.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_mcp_concurrency.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_mcp_integration.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_mcp_server.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_mcp_session.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_md_chunker.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_md_chunker_semantic_integrity.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_md_preservation.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_memory.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_mineru_cmd.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_mineru_extractor.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_minified_chunking.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_p0_regressions.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_pdf_chunker.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_pdf_chunker_integration.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_pdf_e2e.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_pdf_extractor.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_pdf_extractor_integration.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_pdf_extractor_normalization.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_pdf_extractor_server.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_pdf_normalization.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_pdf_subsystem.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_pipeline_buffer.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_pipeline_stages.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_pipeline_version.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_plan_library.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_plugin.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_plugin_install.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_plugin_structure.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_ppid_chain_hypothesis.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_provision.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_rdr052_verification.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_rdr053_verification.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_registry.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_ripgrep_cache.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_schema.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_scoring.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_scratch.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_scratch_cmd.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_search_cmd.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_search_engine.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_search_modules.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_search_snapshot.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_session.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_session_propagation_hypotheses.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_silent_error_logging.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_sn_plugin.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_store_cmd.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_t1.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_t2.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_t2_prefix_scan.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_t3.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_t3_quota_enforcement.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_table_extraction.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_ttl.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_tumbler.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_tuning_config.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_types_and_errors.py +0 -0
- {conexus-3.2.0 → conexus-3.2.2}/tests/test_voyage_retry.py +0 -0
|
@@ -9,13 +9,13 @@
|
|
|
9
9
|
"name": "nx",
|
|
10
10
|
"source": "./nx",
|
|
11
11
|
"description": "Self-hosted three-tier knowledge management with 17 specialized agents, analytical query pipelines, semantic search, and RDR decision tracking for Claude Code.",
|
|
12
|
-
"version": "3.2.
|
|
12
|
+
"version": "3.2.2"
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
"name": "sn",
|
|
16
16
|
"source": "./sn",
|
|
17
17
|
"description": "Injects Serena and Context7 MCP tool usage guidance into subagents via SubagentStart hook.",
|
|
18
|
-
"version": "3.2.
|
|
18
|
+
"version": "3.2.2"
|
|
19
19
|
}
|
|
20
20
|
]
|
|
21
21
|
}
|
|
@@ -6,6 +6,22 @@ Versioning follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [3.2.2] - 2026-04-07
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
- **Plugin audit compliance** — added `nx/.claude-plugin/plugin.json` manifest; fixed 9 agents using non-standard `color` values (only `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan` are valid per Claude Code docs).
|
|
13
|
+
- **PermissionRequest hooks** — added `sequential-thinking` to nx MCP auto-approve list (was causing CI failure); explicit matchers in hooks.json reverted to wildcard routing (decision logic stays explicit in shell scripts).
|
|
14
|
+
|
|
15
|
+
## [3.2.1] - 2026-04-07
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
- **File-path extraction linker** — `generate_rdr_filepath_links()` scans RDR content for source file paths and creates `implements` links to matching catalog code entries. `created_by="filepath_extractor"`. Wired into the indexer alongside the existing heuristic linker.
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
- **MCP auto-approve hooks** — replaced wildcard glob patterns with explicit full tool name lists in both nx (28 tools) and sn (27 tools) PermissionRequest hooks.
|
|
22
|
+
- **Agent self-seeding** — 5 analysis/research agents now self-seed T1 scratch with `link-context` when dispatched without a skill, so the auto-linker fires regardless of dispatch path.
|
|
23
|
+
- **Mandatory T3 persistence** — added `<HARD-GATE>` and Stop Criteria enforcement for `store_put` in deep-research-synthesizer, deep-analyst, debugger, architect-planner, and codebase-deep-analyzer.
|
|
24
|
+
|
|
9
25
|
## [3.2.0] - 2026-04-06
|
|
10
26
|
|
|
11
27
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: conexus
|
|
3
|
-
Version: 3.2.
|
|
3
|
+
Version: 3.2.2
|
|
4
4
|
Summary: Self-hosted semantic search and knowledge management for LLM-driven development
|
|
5
5
|
Project-URL: Homepage, https://github.com/Hellblazer/nexus
|
|
6
6
|
Project-URL: Repository, https://github.com/Hellblazer/nexus
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "nx",
|
|
3
|
+
"version": "3.2.2",
|
|
4
|
+
"description": "Self-hosted three-tier knowledge management with specialized agents, analytical query pipelines, semantic search, and RDR decision tracking for Claude Code.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Hal Hildebrand",
|
|
7
|
+
"url": "https://github.com/Hellblazer"
|
|
8
|
+
},
|
|
9
|
+
"repository": "https://github.com/Hellblazer/nexus",
|
|
10
|
+
"license": "AGPL-3.0-or-later"
|
|
11
|
+
}
|
|
@@ -6,6 +6,22 @@ Versioning follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [3.2.2] - 2026-04-07
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
- Added `nx/.claude-plugin/plugin.json` manifest
|
|
13
|
+
- Fixed 9 agents with non-standard color values (amber, teal, mint, gold, coral, emerald, indigo, lime)
|
|
14
|
+
- Added `sequential-thinking` to MCP auto-approve hook
|
|
15
|
+
|
|
16
|
+
## [3.2.1] - 2026-04-07
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
- MCP auto-approve hook uses explicit full tool names (28 tools) instead of wildcard
|
|
20
|
+
- 5 agents self-seed link-context from task prompt when dispatched without a skill
|
|
21
|
+
- Mandatory T3 store_put with HARD-GATE enforcement in 5 analysis/research agents
|
|
22
|
+
- rdr-gate stores critique to T3 on both pass and fail
|
|
23
|
+
- rdr-research seeds link-context before agent dispatch
|
|
24
|
+
|
|
9
25
|
## [3.2.0] - 2026-04-06
|
|
10
26
|
|
|
11
27
|
### Added
|
|
@@ -54,6 +54,14 @@ Before starting, validate the relay contains all required fields per [RELAY_TEMP
|
|
|
54
54
|
|
|
55
55
|
T2 memory context is auto-injected by SessionStart and SubagentStart hooks.
|
|
56
56
|
|
|
57
|
+
### Link Context (before starting work)
|
|
58
|
+
|
|
59
|
+
Check T1 scratch for existing `link-context` entries via `mcp__plugin_nx_nexus__scratch(action="list")`. If none tagged `link-context`, seed it yourself:
|
|
60
|
+
1. Extract RDR references, document titles, or topic keywords from your task
|
|
61
|
+
2. Resolve to tumblers: `mcp__plugin_nx_nexus__catalog_search(query="<reference>")`
|
|
62
|
+
3. Seed: `mcp__plugin_nx_nexus__scratch(action="put", content='{"targets": [{"tumbler": "<tumbler>", "link_type": "relates"}], "source_agent": "architect-planner"}', tags="link-context")`
|
|
63
|
+
4. If nothing resolves, skip
|
|
64
|
+
|
|
57
65
|
You are an expert software architect and strategic planner who adapts to any language and build system. Read CLAUDE.md to identify the project's language, build system, module structure, and architectural patterns before starting design work. You excel at creating comprehensive, adaptive execution plans that are self-correcting and goal-oriented.
|
|
58
66
|
|
|
59
67
|
**Core Responsibilities:**
|
|
@@ -162,6 +170,19 @@ Use to propose architectures using proven technologies.
|
|
|
162
170
|
5. Store design decisions in Nexus: mcp__plugin_nx_nexus__store_put(content="...", collection="knowledge", title="decision-architect-{topic}", tags="architecture"
|
|
163
171
|
|
|
164
172
|
|
|
173
|
+
## T3 Persistence (MANDATORY before returning)
|
|
174
|
+
|
|
175
|
+
You MUST store your architectural decisions to T3 knowledge BEFORE returning. The auto-linker creates catalog links at storage time — those links are lost if you skip this step.
|
|
176
|
+
|
|
177
|
+
```
|
|
178
|
+
mcp__plugin_nx_nexus__store_put(
|
|
179
|
+
content="# Architecture: {topic}\n\n{decisions}",
|
|
180
|
+
collection="knowledge",
|
|
181
|
+
title="architecture-{topic}-{date}",
|
|
182
|
+
tags="architecture,architect-planner,{domain}"
|
|
183
|
+
)
|
|
184
|
+
```
|
|
185
|
+
|
|
165
186
|
## Recommended Next Step (MANDATORY output)
|
|
166
187
|
|
|
167
188
|
Your final output MUST include a clearly labeled next-step recommendation for the caller to dispatch `developer`.
|
|
@@ -220,3 +241,9 @@ Provide structured plans with:
|
|
|
220
241
|
7. Bead IDs for all created tasks
|
|
221
242
|
|
|
222
243
|
Always include a `## Next Step: plan-auditor` block in your output upon plan completion for the caller to dispatch. Be thorough, be complete, be efficient - deliver plans that are executable machines focused on successful outcomes.
|
|
244
|
+
|
|
245
|
+
<HARD-GATE>
|
|
246
|
+
BEFORE generating your final response, you MUST call store_put to persist your architectural decisions to T3.
|
|
247
|
+
If you have not yet called mcp__plugin_nx_nexus__store_put in this session, STOP and call it NOW.
|
|
248
|
+
Do NOT return without storing. This is not optional.
|
|
249
|
+
</HARD-GATE>
|
|
@@ -3,7 +3,7 @@ name: codebase-deep-analyzer
|
|
|
3
3
|
version: "2.0"
|
|
4
4
|
description: Performs comprehensive codebase analysis including architecture patterns, dependencies, and technical debt. Use when onboarding to projects, before major refactoring, or for system-wide understanding.
|
|
5
5
|
model: sonnet
|
|
6
|
-
color:
|
|
6
|
+
color: yellow
|
|
7
7
|
effort: medium
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -54,6 +54,14 @@ Before starting, validate the relay contains all required fields per [RELAY_TEMP
|
|
|
54
54
|
|
|
55
55
|
T2 memory context is auto-injected by SessionStart and SubagentStart hooks. Check `/beads:ready` for unblocked tasks.
|
|
56
56
|
|
|
57
|
+
### Link Context (before starting work)
|
|
58
|
+
|
|
59
|
+
Check T1 scratch for existing `link-context` entries via `mcp__plugin_nx_nexus__scratch(action="list")`. If none tagged `link-context`, seed it yourself:
|
|
60
|
+
1. Extract RDR references, document titles, or topic keywords from your task
|
|
61
|
+
2. Resolve to tumblers: `mcp__plugin_nx_nexus__catalog_search(query="<reference>")`
|
|
62
|
+
3. Seed: `mcp__plugin_nx_nexus__scratch(action="put", content='{"targets": [{"tumbler": "<tumbler>", "link_type": "relates"}], "source_agent": "codebase-deep-analyzer"}', tags="link-context")`
|
|
63
|
+
4. If nothing resolves, skip
|
|
64
|
+
|
|
57
65
|
You are an elite codebase architect and analysis specialist with deep expertise in software archaeology, system comprehension, and technical documentation. Your mission is to perform comprehensive, systematic analysis of codebases using sequential thought processes and parallel task coordination.
|
|
58
66
|
|
|
59
67
|
**Core Analysis Methodology:**
|
|
@@ -160,6 +168,19 @@ When analyzing a codebase, check for `docs/rdr/` directory. If present:
|
|
|
160
168
|
- RDR documents contain architectural decisions, trade-offs, and research — valuable context for codebase understanding
|
|
161
169
|
|
|
162
170
|
|
|
171
|
+
## T3 Persistence (MANDATORY before returning)
|
|
172
|
+
|
|
173
|
+
You MUST store your analysis findings to T3 knowledge BEFORE returning. The auto-linker creates catalog links at storage time — those links are lost if you skip this step.
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
mcp__plugin_nx_nexus__store_put(
|
|
177
|
+
content="# Codebase Analysis: {topic}\n\n{findings}",
|
|
178
|
+
collection="knowledge",
|
|
179
|
+
title="analysis-codebase-{topic}-{date}",
|
|
180
|
+
tags="analysis,codebase-deep-analyzer,{domain}"
|
|
181
|
+
)
|
|
182
|
+
```
|
|
183
|
+
|
|
163
184
|
## Recommended Next Step (conditional output)
|
|
164
185
|
|
|
165
186
|
When your analysis reveals work that needs to be planned (e.g., refactoring, new features, debt remediation), your final output MUST include a next-step recommendation for the caller to dispatch `strategic-planner`. Skip if analysis is informational only.
|
|
@@ -226,3 +247,9 @@ Store using these naming conventions:
|
|
|
226
247
|
- Knowledge base stored in Nexus (via store_put tool) for future reference
|
|
227
248
|
|
|
228
249
|
You approach each codebase as a complex system requiring systematic exploration, patient investigation, and thoughtful synthesis. Your analysis should be thorough enough to enable confident architectural decisions and technical planning.
|
|
250
|
+
|
|
251
|
+
<HARD-GATE>
|
|
252
|
+
BEFORE generating your final response, you MUST call store_put to persist your findings to T3.
|
|
253
|
+
If you have not yet called mcp__plugin_nx_nexus__store_put in this session, STOP and call it NOW.
|
|
254
|
+
Do NOT return without storing. This is not optional.
|
|
255
|
+
</HARD-GATE>
|
|
@@ -54,6 +54,14 @@ Before starting, validate the relay contains all required fields per [RELAY_TEMP
|
|
|
54
54
|
|
|
55
55
|
T2 memory context is auto-injected by SessionStart and SubagentStart hooks.
|
|
56
56
|
|
|
57
|
+
### Link Context (before starting work)
|
|
58
|
+
|
|
59
|
+
Check T1 scratch for existing `link-context` entries via `mcp__plugin_nx_nexus__scratch(action="list")`. If none tagged `link-context`, seed it yourself:
|
|
60
|
+
1. Extract RDR references, document titles, or topic keywords from your task
|
|
61
|
+
2. Resolve to tumblers: `mcp__plugin_nx_nexus__catalog_search(query="<reference>")`
|
|
62
|
+
3. Seed: `mcp__plugin_nx_nexus__scratch(action="put", content='{"targets": [{"tumbler": "<tumbler>", "link_type": "relates"}], "source_agent": "debugger"}', tags="link-context")`
|
|
63
|
+
4. If nothing resolves, skip
|
|
64
|
+
|
|
57
65
|
### Sibling Context (check scratch for predecessor findings)
|
|
58
66
|
|
|
59
67
|
Before forming hypotheses, check if the developer or other agents left context in scratch:
|
|
@@ -154,6 +162,19 @@ Pattern: Form hypothesis -> Use search tool to gather evidence -> Validate with
|
|
|
154
162
|
|
|
155
163
|
|
|
156
164
|
|
|
165
|
+
## T3 Persistence (MANDATORY before returning)
|
|
166
|
+
|
|
167
|
+
You MUST store your debugging findings to T3 knowledge BEFORE returning. The auto-linker creates catalog links at storage time — those links are lost if you skip this step.
|
|
168
|
+
|
|
169
|
+
```
|
|
170
|
+
mcp__plugin_nx_nexus__store_put(
|
|
171
|
+
content="# Debug: {issue}\n\n{findings}",
|
|
172
|
+
collection="knowledge",
|
|
173
|
+
title="debug-{issue}-{date}",
|
|
174
|
+
tags="debug,debugger,{domain}"
|
|
175
|
+
)
|
|
176
|
+
```
|
|
177
|
+
|
|
157
178
|
## Recommended Next Step (MANDATORY output)
|
|
158
179
|
|
|
159
180
|
Your final output MUST include a clearly labeled next-step recommendation for the caller to dispatch `developer`.
|
|
@@ -208,3 +229,9 @@ Store using these naming conventions:
|
|
|
208
229
|
- Suggest preventive measures to avoid similar issues
|
|
209
230
|
|
|
210
231
|
You approach each debugging session as a scientific investigation, using evidence-based reasoning to systematically eliminate possibilities until the truth emerges. Your goal is not just to fix the immediate problem, but to understand why it occurred and how to prevent similar issues in the future.
|
|
232
|
+
|
|
233
|
+
<HARD-GATE>
|
|
234
|
+
BEFORE generating your final response, you MUST call store_put to persist your findings to T3.
|
|
235
|
+
If you have not yet called mcp__plugin_nx_nexus__store_put in this session, STOP and call it NOW.
|
|
236
|
+
Do NOT return without storing. This is not optional.
|
|
237
|
+
</HARD-GATE>
|
|
@@ -54,6 +54,14 @@ Before starting, validate the relay contains all required fields per [RELAY_TEMP
|
|
|
54
54
|
|
|
55
55
|
T2 memory context is auto-injected by SessionStart and SubagentStart hooks.
|
|
56
56
|
|
|
57
|
+
### Link Context (before starting work)
|
|
58
|
+
|
|
59
|
+
Check T1 scratch for existing `link-context` entries via `mcp__plugin_nx_nexus__scratch(action="list")`. If none tagged `link-context`, seed it yourself:
|
|
60
|
+
1. Extract RDR references, document titles, or topic keywords from your task
|
|
61
|
+
2. Resolve to tumblers: `mcp__plugin_nx_nexus__catalog_search(query="<reference>")`
|
|
62
|
+
3. Seed: `mcp__plugin_nx_nexus__scratch(action="put", content='{"targets": [{"tumbler": "<tumbler>", "link_type": "relates"}], "source_agent": "deep-analyst"}', tags="link-context")`
|
|
63
|
+
4. If nothing resolves, skip
|
|
64
|
+
|
|
57
65
|
You are a meticulous systems analyst with exceptional analytical capabilities. You specialize in deep investigation, comprehensive understanding, and clear explanation of complex technical problems and systems.
|
|
58
66
|
|
|
59
67
|
## Version 2.0 - Enhanced with Hypothesis Testing and Multi-Angle Analysis
|
|
@@ -138,6 +146,19 @@ Incorporate or explicitly refute prior findings in Thought 1. When T3 is empty t
|
|
|
138
146
|
|
|
139
147
|
|
|
140
148
|
|
|
149
|
+
## T3 Persistence (MANDATORY before returning)
|
|
150
|
+
|
|
151
|
+
You MUST store your analysis findings to T3 knowledge BEFORE returning. The auto-linker creates catalog links at storage time — those links are lost if you skip this step.
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
mcp__plugin_nx_nexus__store_put(
|
|
155
|
+
content="# Analysis: {topic}\n\n{findings}",
|
|
156
|
+
collection="knowledge",
|
|
157
|
+
title="analysis-deep-{topic}-{date}",
|
|
158
|
+
tags="analysis,deep-analyst,{domain}"
|
|
159
|
+
)
|
|
160
|
+
```
|
|
161
|
+
|
|
141
162
|
## Recommended Next Step (conditional output)
|
|
142
163
|
|
|
143
164
|
When your investigation reveals issues requiring planned remediation, your final output MUST include a next-step recommendation for the caller to dispatch `strategic-planner`. Skip if findings are informational only.
|
|
@@ -262,3 +283,9 @@ Your analysis integrates with:
|
|
|
262
283
|
|
|
263
284
|
You are not just an analyst but a detective, scientist, and advisor rolled into one. Your systematic approach, intellectual honesty, and comprehensive methodology ensure that complex problems are not just understood but mastered, with clear paths forward based on solid evidence and rigorous analysis.
|
|
264
285
|
|
|
286
|
+
<HARD-GATE>
|
|
287
|
+
BEFORE generating your final response, you MUST call store_put to persist your findings to T3.
|
|
288
|
+
If you have not yet called mcp__plugin_nx_nexus__store_put in this session, STOP and call it NOW.
|
|
289
|
+
Do NOT return without storing. This is not optional.
|
|
290
|
+
</HARD-GATE>
|
|
291
|
+
|
|
@@ -3,7 +3,7 @@ name: deep-research-synthesizer
|
|
|
3
3
|
version: "2.0"
|
|
4
4
|
description: Conducts comprehensive research across nx knowledge store, memory, web resources, and code repositories. Use when needing multi-source research synthesis or building comprehensive understanding of new technologies.
|
|
5
5
|
model: sonnet
|
|
6
|
-
color:
|
|
6
|
+
color: cyan
|
|
7
7
|
effort: medium
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -55,6 +55,24 @@ Before starting, validate the relay contains all required fields per [RELAY_TEMP
|
|
|
55
55
|
|
|
56
56
|
T2 memory context is auto-injected by SessionStart and SubagentStart hooks.
|
|
57
57
|
|
|
58
|
+
### Link Context (before starting work)
|
|
59
|
+
|
|
60
|
+
Check T1 scratch for existing `link-context` entries:
|
|
61
|
+
```
|
|
62
|
+
mcp__plugin_nx_nexus__scratch(action="list")
|
|
63
|
+
```
|
|
64
|
+
If no `link-context` tag is present, seed it yourself:
|
|
65
|
+
|
|
66
|
+
1. Extract RDR references (`RDR-\d+`), document titles, or topic keywords from your task prompt
|
|
67
|
+
2. Resolve to tumblers: `mcp__plugin_nx_nexus__catalog_search(query="<reference>")`
|
|
68
|
+
3. If found, seed scratch:
|
|
69
|
+
```
|
|
70
|
+
mcp__plugin_nx_nexus__scratch(action="put", content='{"targets": [{"tumbler": "<tumbler>", "link_type": "cites"}], "source_agent": "deep-research-synthesizer"}', tags="link-context")
|
|
71
|
+
```
|
|
72
|
+
4. If nothing resolves, skip — the auto-linker handles empty context
|
|
73
|
+
|
|
74
|
+
This ensures your `store_put` calls create catalog links regardless of how you were dispatched.
|
|
75
|
+
|
|
58
76
|
## PDF Processing Protocol
|
|
59
77
|
|
|
60
78
|
1. **First, check if it is already indexed** by searching nx store for the document
|
|
@@ -123,12 +141,27 @@ If your project uses beads for task tracking, consider linking research findings
|
|
|
123
141
|
|
|
124
142
|
|
|
125
143
|
|
|
144
|
+
## T3 Persistence (MANDATORY before returning)
|
|
145
|
+
|
|
146
|
+
You MUST store your research findings to T3 knowledge BEFORE returning. Do not defer this to knowledge-tidier — the auto-linker creates catalog links at storage time, and those links are lost if you skip this step.
|
|
147
|
+
|
|
148
|
+
```
|
|
149
|
+
mcp__plugin_nx_nexus__store_put(
|
|
150
|
+
content="# Research: {topic}\n\n{findings}",
|
|
151
|
+
collection="knowledge",
|
|
152
|
+
title="research-{agent}-{topic}-{date}",
|
|
153
|
+
tags="research,{domain}"
|
|
154
|
+
)
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
This is not optional. Store first, then recommend knowledge-tidier for consolidation.
|
|
158
|
+
|
|
126
159
|
## Recommended Next Step (MANDATORY output)
|
|
127
160
|
|
|
128
161
|
Your final output MUST include a clearly labeled next-step recommendation for the caller to dispatch `knowledge-tidier`.
|
|
129
162
|
|
|
130
163
|
**Condition**: ALWAYS after research completion
|
|
131
|
-
**Rationale**:
|
|
164
|
+
**Rationale**: Knowledge-tidier consolidates and deduplicates stored findings
|
|
132
165
|
**Mechanism**: You do not have the Agent tool — your caller orchestrates the chain. Include this block at the end of your output:
|
|
133
166
|
|
|
134
167
|
```
|
|
@@ -280,12 +313,13 @@ Track and report:
|
|
|
280
313
|
|
|
281
314
|
## Stop Criteria
|
|
282
315
|
|
|
283
|
-
Research is complete
|
|
316
|
+
Research is NOT complete until ALL of the following are true:
|
|
284
317
|
- All identified sources have been searched
|
|
285
318
|
- All facts have been cross-validated
|
|
286
319
|
- No unresolved contradictions remain
|
|
287
320
|
- Output has been reviewed and versioned
|
|
288
321
|
- Quality metrics meet thresholds
|
|
322
|
+
- **Findings stored to T3 via `store_put`** — this is a hard gate, not optional
|
|
289
323
|
|
|
290
324
|
## Edge Case Handling
|
|
291
325
|
|
|
@@ -295,3 +329,9 @@ Research is complete when:
|
|
|
295
329
|
- **Technical Complexity**: Break down complex topics into digestible components while maintaining accuracy
|
|
296
330
|
|
|
297
331
|
You are not just a researcher but a knowledge architect, building lasting value in the user information ecosystem with every investigation. Your work creates compounding returns as each research session enriches the collective knowledge base for future inquiries.
|
|
332
|
+
|
|
333
|
+
<HARD-GATE>
|
|
334
|
+
BEFORE generating your final response, you MUST call store_put to persist your findings to T3.
|
|
335
|
+
If you have not yet called mcp__plugin_nx_nexus__store_put in this session, STOP and call it NOW.
|
|
336
|
+
Do NOT return without storing. This is not optional.
|
|
337
|
+
</HARD-GATE>
|
|
@@ -3,7 +3,7 @@ name: knowledge-tidier
|
|
|
3
3
|
version: "2.0"
|
|
4
4
|
description: Reviews and consolidates nx T3 knowledge and T2 memory for accuracy and consistency. Use after major research tasks or when contradicting information is discovered across documents.
|
|
5
5
|
model: haiku
|
|
6
|
-
color:
|
|
6
|
+
color: green
|
|
7
7
|
effort: medium
|
|
8
8
|
maxTurns: 20
|
|
9
9
|
---
|
|
@@ -3,7 +3,7 @@ name: orchestrator
|
|
|
3
3
|
version: "2.0"
|
|
4
4
|
description: Routes requests to appropriate specialized agents and manages multi-agent pipelines. Use when the task is ambiguous, when coordinating work across multiple agents, or when unsure which agent to invoke.
|
|
5
5
|
model: sonnet
|
|
6
|
-
color:
|
|
6
|
+
color: yellow
|
|
7
7
|
effort: medium
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: pdf-chromadb-processor
|
|
|
3
3
|
version: "3.0"
|
|
4
4
|
description: Indexes PDF files into nx T3 store for semantic search by delegating to nx index pdf. Use for any PDF that needs to be extracted and made semantically searchable.
|
|
5
5
|
model: haiku
|
|
6
|
-
color:
|
|
6
|
+
color: orange
|
|
7
7
|
effort: low
|
|
8
8
|
maxTurns: 30
|
|
9
9
|
---
|
|
@@ -3,7 +3,7 @@ name: plan-enricher
|
|
|
3
3
|
version: "2.0"
|
|
4
4
|
description: Enriches beads with execution context — file paths, code patterns, constraints, test commands, and (when available) audit findings. Use after plan-audit in RDR planning chain, or standalone for bead enrichment within the same session.
|
|
5
5
|
model: sonnet
|
|
6
|
-
color:
|
|
6
|
+
color: green
|
|
7
7
|
effort: medium
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: strategic-planner
|
|
|
3
3
|
version: "2.1"
|
|
4
4
|
description: Creates phased TDD-driven implementation plans and decomposes complex work into tracked beads. Use for multi-phase feature planning, dependency management, breaking vague requirements into executable tasks, or iterating on existing plans.
|
|
5
5
|
model: opus
|
|
6
|
-
color:
|
|
6
|
+
color: purple
|
|
7
7
|
effort: high
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -192,6 +192,21 @@ Each bead must contain sufficient context for autonomous execution:
|
|
|
192
192
|
|
|
193
193
|
|
|
194
194
|
|
|
195
|
+
## T3 Persistence (MANDATORY before returning)
|
|
196
|
+
|
|
197
|
+
You MUST store key architectural decisions to T3 knowledge BEFORE returning. Plans go to T2 memory (per Completion Protocol), but validated decisions belong in T3 so the auto-linker can create catalog links.
|
|
198
|
+
|
|
199
|
+
```
|
|
200
|
+
mcp__plugin_nx_nexus__store_put(
|
|
201
|
+
content="# Decision: {topic}\n\n{rationale}",
|
|
202
|
+
collection="knowledge",
|
|
203
|
+
title="decision-planner-{topic}-{date}",
|
|
204
|
+
tags="decision,planning,{domain}"
|
|
205
|
+
)
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
Skip only if the plan contains no architectural decisions (pure task decomposition).
|
|
209
|
+
|
|
195
210
|
## Recommended Next Step (MANDATORY output)
|
|
196
211
|
|
|
197
212
|
Your final output MUST include a clearly labeled next-step recommendation for the caller to dispatch `plan-auditor`.
|
|
@@ -3,7 +3,7 @@ name: substantive-critic
|
|
|
3
3
|
version: "2.0"
|
|
4
4
|
description: Provides deep constructive critique of code, documentation, plans, and designs. Identifies structural flaws, logical inconsistencies, and unvalidated assumptions. Use when reviewing architectural decisions, validating implementations against specifications, or auditing plans before committing.
|
|
5
5
|
model: sonnet
|
|
6
|
-
color:
|
|
6
|
+
color: pink
|
|
7
7
|
effort: high
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: test-validator
|
|
|
3
3
|
version: "2.0"
|
|
4
4
|
description: Verifies test coverage, runs test suites, and validates test quality for code changes. Use after implementation, before marking work complete, or when test failures need systematic root-cause analysis.
|
|
5
5
|
model: sonnet
|
|
6
|
-
color:
|
|
6
|
+
color: pink
|
|
7
7
|
effort: high
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Auto-approve nexus MCP tools — explicit full tool names, no wildcards.
|
|
3
|
+
set -euo pipefail
|
|
4
|
+
|
|
5
|
+
INPUT=$(cat)
|
|
6
|
+
TOOL_NAME=$(echo "$INPUT" | python3 -c "import json,sys; print(json.loads(sys.stdin.read()).get('tool_name',''))" 2>/dev/null || echo "")
|
|
7
|
+
|
|
8
|
+
# Explicit allow list — every nx MCP tool by full name
|
|
9
|
+
case "$TOOL_NAME" in
|
|
10
|
+
mcp__plugin_nx_nexus__search|\
|
|
11
|
+
mcp__plugin_nx_nexus__query|\
|
|
12
|
+
mcp__plugin_nx_nexus__store_put|\
|
|
13
|
+
mcp__plugin_nx_nexus__store_get|\
|
|
14
|
+
mcp__plugin_nx_nexus__store_list|\
|
|
15
|
+
mcp__plugin_nx_nexus__store_delete|\
|
|
16
|
+
mcp__plugin_nx_nexus__memory_put|\
|
|
17
|
+
mcp__plugin_nx_nexus__memory_get|\
|
|
18
|
+
mcp__plugin_nx_nexus__memory_search|\
|
|
19
|
+
mcp__plugin_nx_nexus__memory_delete|\
|
|
20
|
+
mcp__plugin_nx_nexus__scratch|\
|
|
21
|
+
mcp__plugin_nx_nexus__scratch_manage|\
|
|
22
|
+
mcp__plugin_nx_nexus__collection_list|\
|
|
23
|
+
mcp__plugin_nx_nexus__collection_info|\
|
|
24
|
+
mcp__plugin_nx_nexus__collection_verify|\
|
|
25
|
+
mcp__plugin_nx_nexus__plan_save|\
|
|
26
|
+
mcp__plugin_nx_nexus__plan_search|\
|
|
27
|
+
mcp__plugin_nx_nexus__catalog_search|\
|
|
28
|
+
mcp__plugin_nx_nexus__catalog_show|\
|
|
29
|
+
mcp__plugin_nx_nexus__catalog_list|\
|
|
30
|
+
mcp__plugin_nx_nexus__catalog_register|\
|
|
31
|
+
mcp__plugin_nx_nexus__catalog_update|\
|
|
32
|
+
mcp__plugin_nx_nexus__catalog_link|\
|
|
33
|
+
mcp__plugin_nx_nexus__catalog_links|\
|
|
34
|
+
mcp__plugin_nx_nexus__catalog_unlink|\
|
|
35
|
+
mcp__plugin_nx_nexus__catalog_link_audit|\
|
|
36
|
+
mcp__plugin_nx_nexus__catalog_link_bulk|\
|
|
37
|
+
mcp__plugin_nx_nexus__catalog_link_query|\
|
|
38
|
+
mcp__plugin_nx_nexus__catalog_resolve|\
|
|
39
|
+
mcp__plugin_nx_nexus__catalog_stats|\
|
|
40
|
+
mcp__plugin_nx_sequential-thinking__sequentialthinking)
|
|
41
|
+
python3 -c "
|
|
42
|
+
import json
|
|
43
|
+
print(json.dumps({
|
|
44
|
+
'hookSpecificOutput': {
|
|
45
|
+
'hookEventName': 'PermissionRequest',
|
|
46
|
+
'decision': {'behavior': 'allow'}
|
|
47
|
+
}
|
|
48
|
+
}))
|
|
49
|
+
"
|
|
50
|
+
;;
|
|
51
|
+
esac
|
|
@@ -117,16 +117,18 @@ If no collections found: "No prior RDRs indexed. Cross-project prior-art search
|
|
|
117
117
|
### On Pass
|
|
118
118
|
|
|
119
119
|
1. Write gate result to T2: mcp__plugin_nx_nexus__memory_put(content="outcome: PASSED\ndate: YYYY-MM-DD\ncritical_count: 0\nsignificant_count: N\nobservation_count: N\nsummary: One-sentence summary", project="{repo}_rdr", title="{id}-gate-latest", ttl="permanent", tags="rdr,gate"
|
|
120
|
-
2.
|
|
121
|
-
3.
|
|
120
|
+
2. Store gate critique to T3: mcp__plugin_nx_nexus__store_put(content="# Gate: RDR NNN\n\n{critique}", collection="knowledge", title="gate-rdr-NNN-{date}", tags="rdr,gate,critique")
|
|
121
|
+
3. Append gate findings to the RDR's Revision History section
|
|
122
|
+
4. Print: `> Run '/nx:rdr-accept <id>' to accept this RDR.`
|
|
122
123
|
|
|
123
124
|
Status remains **Draft** until the author explicitly accepts via `/nx:rdr-accept`.
|
|
124
125
|
|
|
125
126
|
### On Fail
|
|
126
127
|
|
|
127
128
|
1. Write gate result to T2 (same format, `outcome: "BLOCKED"`)
|
|
128
|
-
2.
|
|
129
|
-
3.
|
|
129
|
+
2. Store gate critique to T3: mcp__plugin_nx_nexus__store_put(content="# Gate BLOCKED: RDR NNN\n\n{critique}", collection="knowledge", title="gate-rdr-NNN-{date}", tags="rdr,gate,critique,blocked")
|
|
130
|
+
3. Display the critique with specific sections to address
|
|
131
|
+
4. Status remains Draft
|
|
130
132
|
|
|
131
133
|
## Relay Template (Use This Format)
|
|
132
134
|
|
|
@@ -80,6 +80,17 @@ When the user asks to *investigate* something (not just record a finding):
|
|
|
80
80
|
- **External research** ("what embedding models support CCE?"): Dispatch `deep-research-synthesizer` agent, then record the finding
|
|
81
81
|
- **Simple recording**: No agent needed — just write the T2 record and update markdown
|
|
82
82
|
|
|
83
|
+
### Pre-Dispatch: Seed Link Context
|
|
84
|
+
|
|
85
|
+
Before dispatching an agent, seed T1 scratch with link targets so the auto-linker can create catalog links when the agent stores findings:
|
|
86
|
+
|
|
87
|
+
1. Resolve the RDR's tumbler: `mcp__plugin_nx_nexus__catalog_search(query="RDR-NNN", content_type="rdr")`
|
|
88
|
+
2. Write link context to scratch:
|
|
89
|
+
```
|
|
90
|
+
mcp__plugin_nx_nexus__scratch(action="put", content='{"targets": [{"tumbler": "<resolved-tumbler>", "link_type": "cites"}], "source_agent": "rdr-research"}', tag="link-context")
|
|
91
|
+
```
|
|
92
|
+
3. If catalog search returns no result, skip seeding (the auto-linker handles empty context gracefully)
|
|
93
|
+
|
|
83
94
|
## Relay Template (Use This Format)
|
|
84
95
|
|
|
85
96
|
When dispatching agents (deep-research-synthesizer or codebase-deep-analyzer) via Agent tool, use this exact structure:
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "conexus"
|
|
7
|
-
version = "3.2.
|
|
7
|
+
version = "3.2.2"
|
|
8
8
|
description = "Self-hosted semantic search and knowledge management for LLM-driven development"
|
|
9
9
|
readme = { file = "README.md", content-type = "text/markdown" }
|
|
10
10
|
requires-python = ">=3.12,<3.14"
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Auto-approve sn plugin MCP tools (Serena + Context7) — explicit full tool names.
|
|
3
|
+
set -euo pipefail
|
|
4
|
+
|
|
5
|
+
INPUT=$(cat)
|
|
6
|
+
TOOL_NAME=$(echo "$INPUT" | python3 -c "import json,sys; print(json.loads(sys.stdin.read()).get('tool_name',''))" 2>/dev/null || echo "")
|
|
7
|
+
|
|
8
|
+
case "$TOOL_NAME" in
|
|
9
|
+
mcp__plugin_sn_serena__check_onboarding_performed|\
|
|
10
|
+
mcp__plugin_sn_serena__delete_memory|\
|
|
11
|
+
mcp__plugin_sn_serena__edit_memory|\
|
|
12
|
+
mcp__plugin_sn_serena__find_file|\
|
|
13
|
+
mcp__plugin_sn_serena__initial_instructions|\
|
|
14
|
+
mcp__plugin_sn_serena__insert_after_symbol|\
|
|
15
|
+
mcp__plugin_sn_serena__insert_before_symbol|\
|
|
16
|
+
mcp__plugin_sn_serena__jet_brains_find_declaration|\
|
|
17
|
+
mcp__plugin_sn_serena__jet_brains_find_implementations|\
|
|
18
|
+
mcp__plugin_sn_serena__jet_brains_find_referencing_symbols|\
|
|
19
|
+
mcp__plugin_sn_serena__jet_brains_find_symbol|\
|
|
20
|
+
mcp__plugin_sn_serena__jet_brains_get_symbols_overview|\
|
|
21
|
+
mcp__plugin_sn_serena__jet_brains_inline_symbol|\
|
|
22
|
+
mcp__plugin_sn_serena__jet_brains_move|\
|
|
23
|
+
mcp__plugin_sn_serena__jet_brains_rename|\
|
|
24
|
+
mcp__plugin_sn_serena__jet_brains_safe_delete|\
|
|
25
|
+
mcp__plugin_sn_serena__jet_brains_type_hierarchy|\
|
|
26
|
+
mcp__plugin_sn_serena__list_dir|\
|
|
27
|
+
mcp__plugin_sn_serena__list_memories|\
|
|
28
|
+
mcp__plugin_sn_serena__onboarding|\
|
|
29
|
+
mcp__plugin_sn_serena__read_memory|\
|
|
30
|
+
mcp__plugin_sn_serena__rename_memory|\
|
|
31
|
+
mcp__plugin_sn_serena__replace_symbol_body|\
|
|
32
|
+
mcp__plugin_sn_serena__search_for_pattern|\
|
|
33
|
+
mcp__plugin_sn_serena__write_memory|\
|
|
34
|
+
mcp__plugin_sn_context7__resolve-library-id|\
|
|
35
|
+
mcp__plugin_sn_context7__query-docs)
|
|
36
|
+
python3 -c "
|
|
37
|
+
import json
|
|
38
|
+
print(json.dumps({
|
|
39
|
+
'hookSpecificOutput': {
|
|
40
|
+
'hookEventName': 'PermissionRequest',
|
|
41
|
+
'decision': {'behavior': 'allow'}
|
|
42
|
+
}
|
|
43
|
+
}))
|
|
44
|
+
"
|
|
45
|
+
;;
|
|
46
|
+
esac
|