Skip to content

Improve subagent routing and reasoning policies - #37

Merged
ainetx merged 8 commits into
mainfrom
sub-agent-improve
Jun 14, 2026
Merged

Improve subagent routing and reasoning policies#37
ainetx merged 8 commits into
mainfrom
sub-agent-improve

Conversation

@ainetx

@ainetx ainetx commented Jun 14, 2026

Copy link
Copy Markdown
Collaborator

Enhance routing capabilities and refine subagent decision-making processes. Address findings from the review loop and ensure compliance with one-shot dispatch decisions. Adjust reasoning effort for improved performance.

Summary by CodeRabbit

Release Notes

  • New Features

    • Added multi-turn “describe intent / help me choose” workflow discovery with free-text re-matching.
    • Enabled companion multi-skill selection for multi-domain tasks with sequential execution while respecting approvals and turn boundaries.
    • Added next-action suggestions after task completion.
    • Introduced new gates and a review finding contract with explicit approval gating (including creative brainstorming, language complexity, plan-first, and shutdown).
  • Improvements

    • Refined phase planning/compilation/runner selection and resume behavior.
    • Lowered reasoning effort for selected agents.
  • Bug Fixes

    • Corrected commit-footer applicability for Studio-created commits.
  • Tests

    • Updated snapshots and routing/sub-agent dispatch coverage for new behaviors.

ainetx and others added 4 commits June 14, 2026 11:05
Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Studio-Workflows: cf-write-skills,cf-explore,cf-brainstorm
Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Studio-Workflows: cf-write-skills
Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Studio-Workflows: cf-write-skills,cf-analyze
Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Studio-Workflows: cf-write-skills,cf-analyze
@coderabbitai

coderabbitai Bot commented Jun 14, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 233035e9-4aa7-45e8-84d5-290e9616c0b9

📥 Commits

Reviewing files that changed from the base of the PR and between 4ff8099 and 0b5cc75.

📒 Files selected for processing (6)
  • .bootstrap/version.toml
  • skills/studio/modules/subagents/dispatch.md
  • tests/test_workflow_subagents_dispatch.py
  • workflows/analyze.md
  • workflows/generate.md
  • workflows/plan.md
✅ Files skipped from review due to trivial changes (1)
  • .bootstrap/version.toml
🚧 Files skipped from review as they are similar to previous changes (5)
  • skills/studio/modules/subagents/dispatch.md
  • workflows/plan.md
  • workflows/analyze.md
  • workflows/generate.md
  • tests/test_workflow_subagents_dispatch.py

📝 Walkthrough

Walkthrough

The PR refines intent routing across analyze, generate, and plan workflows by adding free-text intent capture, companion multi-skill selection, and "describe intent" flows. Phase agents are split into default (non-isolated) and isolated variants with explicit policy selection. Sub-agent dispatch is restructured with a new SubAgentSelectionRegistry and two-level approval model (native vs inline, with session persistence). Multiple contracts are extracted into dedicated modules (git-commit-mode, template-vars, review gates, creative/language/migration/plan-first gates, next-actions, shutdown). Agents across code generation, PDSL, and phase execution have reasoning_effort reduced. Tests and architecture documentation are updated accordingly.

Changes

Intent Routing, Phase Isolation, and Sub-Agent Dispatch

Layer / File(s) Summary
Session init: core rule loading, command resolution, and conditional-module reporting
skills/studio/SKILL.md
SessionInit is expanded to load ConditionalModuleLoading rules, set CFS_INIT, run CommandResolution and CliCapabilities, emit both always-on and conditional-module trigger reports, then continue to IntentRouting. ConditionalModuleLoading adds explicit ordering constraints, including loading companion-skills.md before companion recommendations.
IntentRouting refactor: skill resolution, free-text intent, and companion multi-select
skills/studio/SKILL.md
IntentRouting is expanded to resolve cf-* skills before menu rendering, add "describe intent / help me choose" when no intent is provided, treat free-text as ORIGINAL_INTENT to re-run matching, and emit MatchedIntentSkillMenu supporting single skill or sequential companion multi-select while preserving gates. IntentDescribeCapture (prompt for free-text intent, re-run match), IntentAllSkillsMenu (all skills fallback with companion support), and SkillInvocationArt (ASCII-art banners) units are added.
Companion skill routing module and workflow-specific routing
skills/studio/modules/routing/companion-skills.md, workflows/analyze.md, workflows/generate.md
CompanionSkillRouting module identifies compatible companion skills/groups for multi-domain tasks, ranks by coverage, and emits a menu with suggested single-skill and companion-group options. cf-analyze and cf-generate implement equivalent routing patterns with dedicated describe-intent and other-skills units, enforcing ORIGINAL_INTENT passing, standardized skill rendering, sequential companion invocation, and gate preservation.
SubAgentSelectionRegistry and SubAgentDispatch: two-level approval and contract-driven dispatch
skills/studio/modules/subagents/dispatch.md
SubAgentSelectionRegistry loads agents.toml, builds a cost-aware selection table, filters by workflow/contract requirements, and selects the cheapest capable agent with controlled escalation. SubAgentDispatch gates every dispatch group on user approval (native vs inline modes, session persistence), loads per-subagent contracts, synthesizes prompts from rules plus contract, and handles dispatch errors with fallback menus (inline, bounded retry, stop).
Phase agent isolation split: default and isolated variants with explicit policy
skills/studio/agents.toml, workflows/plan.md, architecture/features/execution-plans.md
cf-phase-runner and cf-phase-compiler become non-isolated (isolation=false, reasoning_effort=low); new *-isolated variants added with isolation=true. plan.md adds PlanPhaseCompilerDispatch (select and dispatch compiler variant), PlanPhaseCompilerComplete (resume and verify outputs), and updates PlanNativeExecute to select a runner variant based on gitignore/worktree-visibility. execution-plans.md documents the isolation policy selection step.
reasoning_effort tuning across generators, PDSL, and phase agents
skills/studio/agents.toml, tests/test_agents_existing_snapshot.py
cf-codegen, cf-phase-*, cf-pdsl-author/transformer, cf-generate-author-*, cf-generate-coder-*, and cf-generate-prompt-engineer-casual have reasoning_effort reduced. Snapshot test pinned tuning-table values are updated to reflect new efforts and new isolated phase variants.
Module refactoring: git-commit-mode, template-vars, gates, and dispatch
skills/studio/modules/subagents/git-commit-mode.md, skills/studio/modules/runtime/template-vars.md, skills/studio/modules/gates/*, skills/studio/modules/review/*, skills/studio/modules/ui/next-actions.md, skills/studio/modules/session/shutdown.md
git-commit-mode.md extracts GitCommitModeGate defining session git policy, commit footer contract, and trailer validation. template-vars.md defines TemplateVarResolution (run {cfs_cmd} resolve-vars, prompt if needed). New gate modules: finding-contract.md, fix-approval.md, plan-first.md, creative-brainstorm-offer.md, language-complexity.md, migrate-from-cypilot-offer.md. New UI/session modules: next-actions.md (NextActionsOffer), shutdown.md (StudioShutdown). Agent prompts and migrate-from-cypilot.md are updated to reference the new module locations. SKILL.md TemplateVarResolution is removed.
Subagent registration architecture: per-subagent file generation and registry-based selection
architecture/features/subagent-registration.md
Feature is broadened from fixed subagent pairs to one file per registered subagent per tool. Feature overview frames Studio workflows as delegations to tool-native subagents. New "Select Studio Subagent" flow describes registry loading, candidate filtering, and cheapest-capable selection with escalation. Tool-capability detection is generalized to return tool-specific output/config sourced from registry. Definitions of Done target one output file per subagent (one TOML section per subagent for OpenAI).
Test suite updates: dispatch model, phase variants, routing contracts, budgets
tests/test_workflow_subagents_dispatch.py, tests/test_workflow_parsing.py, tests/test_agents_existing_snapshot.py
Phase runner/compiler agents and isolated variants are added to WORKFLOW_SUBAGENTS and DISPATCH_PAYLOADS. Old session-approval tests are replaced with dispatch-group approval, inline fallback, free-text routing unit contracts, and SubAgentSelectionRegistry ranking assertions. New phase-agent invariant tests verify default vs isolated variants and plan.md variant announcement. applies_when changed to studio_or_agent_creates_git_commit. Module budgets are split from single SKILL.md budget into per-module budgets.
Agent integration architecture: thin-router companion workflow multi-select
architecture/features/agent-integration.md
The /cf cross-cutting router now presents all relevant companion workflows, supports explicit multi-select, and executes each selected workflow sequentially while preserving prerequisite gates, approval boundaries, and STOP_TURN semantics. Adds intent-ambiguity handling with two-stage menus (all workflows + "describe intent" when empty; matched menu after free-text intent). Specifies conditional-module reporting of always-on sources and module trigger table during cf load.
Bootstrap version pinning
.bootstrap/version.toml
CFS bootstrap requested_ref is pinned from "latest" to "v1.3.6" to align with the configured cfs.version.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • constructorfabric/studio#32: Both PRs modify skills/studio/SKILL.md session init and routing—the main PR's expanded SessionInit and IntentRouting build on the retrieved PR's session initialization improvements.
  • constructorfabric/studio#15: Both PRs update core intent routing and dispatch in skills/studio/SKILL.md and thin-router behavior in workflows/analyze.md, workflows/generate.md, and workflows/plan.md.
  • constructorfabric/studio#19: Both PRs update the commit_footer_contract to use studio_or_agent_creates_git_commit across phase-runner, phase-compiler, and related agent prompt files, coordinating git commit footer applicability.

Poem

🐇 A rabbit hops through menus wide,
With companion skills stood side by side.
"Describe your intent!" the router cries,
While isolated agents run on the sly.
Reasoning low, but routing bright—
Sequential gates keep the path just right! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title "Improve subagent routing and reasoning policies" clearly and concisely summarizes the main focus of the changes: enhancements to subagent routing mechanisms and reasoning effort tuning across multiple agent configurations.
Docstring Coverage ✅ Passed Docstring coverage is 89.47% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch sub-agent-improve

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@skills/studio/SKILL.md`:
- Around line 83-91: The IntentDescribeCapture unit in SKILL.md is intended to
be a generic pattern, but the RULES section (around line 95) contains a
hardcoded reference to AnalyzeRoute, which is specific to the analyze router
defined in workflows/analyze.md. This creates unwanted coupling between a
generic pattern and router-specific logic. To fix this, either (1) remove or
abstract the AnalyzeRoute reference from the RULES of IntentDescribeCapture to
make the pattern truly generic and router-agnostic, or (2) add clear
documentation at the top of IntentDescribeCapture indicating that this is a
template pattern and that actual execution should use router-specific variants
like AnalyzeDescribeIntent and GenerateDescribeIntent defined in their
respective workflow files. Choose the approach that best aligns with your
architecture and document it clearly.
- Around line 146-162: The SubAgentSelectionRegistry unit's DO block describes
the selection procedure (filtering and choosing the cheapest capable candidate)
but lacks an explicit action to set or expose the selected agent for
SubAgentDispatch to consume. Add an explicit DO action (for example, SET
selected_agent = <result of selection logic>) that clearly shows how the
selection result is made available, or add documentation clarifying whether the
selection happens inline during dispatch and what the contract is between
SubAgentSelectionRegistry and SubAgentDispatch. Ensure the output mechanism is
expressed as an executable action in the DO block, not solely as a rule.

In `@workflows/plan.md`:
- Around line 127-128: The markdown file has fence-spacing violations (MD031)
around PDSL code blocks that require fixing. At line 127-128, line 142-143, and
line 154-155, add blank lines before and after the fenced code blocks (the
```pdsl and closing ``` markers) to comply with markdown spacing standards. Each
fenced code block boundary should have a blank line separating it from adjacent
content.
- Around line 132-140: The isolation policy selection condition for
cf-phase-compiler-isolated is overly strict because it requires phase outputs to
already be worktree-visible before selection, but these files don't exist yet on
first compile dispatch. In the RULES section around line 139, modify the ALWAYS
rule for cf-phase-compiler-isolated to remove the requirement that phase outputs
must be tracked or worktree-visible, since those outputs will be generated by
the compiler itself. The condition should only verify that plan.toml, briefs,
and declared output paths are worktree-visible. Apply the same fix to the
corresponding location at lines 221-223 which contains the same overly strict
predicate.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: b73893d6-90b4-4ee5-8aa8-7aec23170e58

📥 Commits

Reviewing files that changed from the base of the PR and between 1c0a2f7 and dad0e54.

📒 Files selected for processing (10)
  • architecture/features/agent-integration.md
  • architecture/features/execution-plans.md
  • architecture/features/subagent-registration.md
  • skills/studio/SKILL.md
  • skills/studio/agents.toml
  • tests/test_agents_existing_snapshot.py
  • tests/test_workflow_subagents_dispatch.py
  • workflows/analyze.md
  • workflows/generate.md
  • workflows/plan.md

Comment thread skills/studio/SKILL.md
Comment thread skills/studio/SKILL.md Outdated
Comment thread workflows/plan.md
Comment on lines 127 to 128
```
```pdsl

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix MD031 fence-spacing warnings around adjacent PDSL blocks.

Static analysis flags missing blank lines around fenced code block boundaries at Line 127-Line 128, Line 142-Line 143, and Line 154-Line 155.

Also applies to: 142-143, 154-155

🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 127-127: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


[warning] 128-128: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@workflows/plan.md` around lines 127 - 128, The markdown file has
fence-spacing violations (MD031) around PDSL code blocks that require fixing. At
line 127-128, line 142-143, and line 154-155, add blank lines before and after
the fenced code blocks (the ```pdsl and closing ``` markers) to comply with
markdown spacing standards. Each fenced code block boundary should have a blank
line separating it from adjacent content.

Source: Linters/SAST tools

Comment thread workflows/plan.md Outdated
ainetx and others added 3 commits June 14, 2026 11:54
Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Studio-Workflows: cf-write-skills,cf-analyze
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>

Studio-Generated-By: Constructor Studio

Studio-Source-Repo: https://github.com/constructorfabric/studio

Constructor-Fabric: https://github.com/constructorfabric

Studio-Workflows: cf-write-skills,cf-analyze
Signed-off-by: ainetx <viator@via-net.org>
Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
Studio-Workflows: cf-write-skills,cf-analyze

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
skills/studio/SKILL.md (1)

85-96: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Keep free-text intents on the matched-menu path.

Line 96 sends non-empty free text back to IntentSkillMenu when it doesn't span multiple domains, which contradicts the free-text routing rule above and can bounce a valid single-domain intent to the top menu instead of matching it.

🛠 Proposed fix
-  INVALID -> treat non-empty free text as ORIGINAL_INTENT, load companion-skills module when the text spans domains, run matching, and EMIT_MENU MatchedIntentSkillMenu; otherwise EMIT_MENU IntentSkillMenu
+  INVALID -> treat non-empty free text as ORIGINAL_INTENT, load companion-skills module when the text spans domains, run matching, and EMIT_MENU MatchedIntentSkillMenu
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@skills/studio/SKILL.md` around lines 85 - 96, The INVALID case in the
IntentSkillMenu definition is sending single-domain free text back to
IntentSkillMenu instead of matching it. According to the rules in lines 85-89,
free text should always be treated as ORIGINAL_INTENT and run matching to emit
MatchedIntentSkillMenu. In the INVALID case on line 96, change the logic so that
when free text does not span multiple domains (single domain case), it still
emits MatchedIntentSkillMenu after running intent matching, rather than
reverting to IntentSkillMenu. This ensures valid single-domain intents follow
the matched-menu path consistently instead of being bounced back to the top
menu.
skills/studio/migrate-from-cypilot.md (1)

291-325: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Propagate the canonical footer contract into migrator retries.

E3_RunMigrator forwards git_commit_mode, contributing_guide, and git_constraint, but it omits commit_footer_contract. GitCommitModeGate requires that field on every write-capable dispatch payload, so the migrator can enforce the same trailer policy on both the initial run and the E5 retry path.

Also applies to: 416-423

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@skills/studio/migrate-from-cypilot.md` around lines 291 - 325, The UNIT
E3_RunMigrator is missing the commit_footer_contract parameter in its DISPATCH
cf-migrate-migrator block. Add commit_footer_contract to the list of parameters
passed to the migrator (alongside git_commit_mode, contributing_guide, and
git_constraint) and retrieve it from the same source as the other contract
values set by GitCommitModeGate. This ensures the migrator can enforce
consistent trailer policy on both initial runs and the E5 retry path. Apply the
same fix at the other affected location(s) referenced in the comment where
similar dispatcher calls exist.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@architecture/features/agent-integration.md`:
- Around line 128-140: The markdown file contains an orphaned text fragment on
line 140 that reads "approvals, and terminal boundaries -
`inst-companion-multiselect`" which is a dangling duplicate of step 7's
acceptance criteria. This fragment uses an inconsistent spelling of the
instruction ID (multiselect instead of multi-select) and creates conflicting
acceptance criteria. Delete this orphaned tail line entirely, as step 7 (the
checklist item beginning with "If a task maps to multiple domains...") already
contains complete and correct acceptance criteria.

In `@skills/studio/modules/subagents/dispatch.md`:
- Around line 62-68: The SubAgentFallbackRequest menu option for retry lacks a
mechanism to enforce the "at most 2 retries" limit, allowing the failure path to
reopen indefinitely. Add a state variable (e.g., SUB_AGENT_RETRY_COUNT) to track
the number of retry attempts, increment it when the retry option is selected,
and modify the menu logic to only offer the retry option when the count is less
than 2. When the retry limit is reached, the menu should only offer inline or
stop options to prevent infinite retry loops.

---

Outside diff comments:
In `@skills/studio/migrate-from-cypilot.md`:
- Around line 291-325: The UNIT E3_RunMigrator is missing the
commit_footer_contract parameter in its DISPATCH cf-migrate-migrator block. Add
commit_footer_contract to the list of parameters passed to the migrator
(alongside git_commit_mode, contributing_guide, and git_constraint) and retrieve
it from the same source as the other contract values set by GitCommitModeGate.
This ensures the migrator can enforce consistent trailer policy on both initial
runs and the E5 retry path. Apply the same fix at the other affected location(s)
referenced in the comment where similar dispatcher calls exist.

In `@skills/studio/SKILL.md`:
- Around line 85-96: The INVALID case in the IntentSkillMenu definition is
sending single-domain free text back to IntentSkillMenu instead of matching it.
According to the rules in lines 85-89, free text should always be treated as
ORIGINAL_INTENT and run matching to emit MatchedIntentSkillMenu. In the INVALID
case on line 96, change the logic so that when free text does not span multiple
domains (single domain case), it still emits MatchedIntentSkillMenu after
running intent matching, rather than reverting to IntentSkillMenu. This ensures
valid single-domain intents follow the matched-menu path consistently instead of
being bounced back to the top menu.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 784dd8ad-45e4-4ab8-9ad4-1beae1f8ced1

📥 Commits

Reviewing files that changed from the base of the PR and between dad0e54 and e13e775.

📒 Files selected for processing (24)
  • architecture/features/agent-integration.md
  • skills/studio/SKILL.md
  • skills/studio/agents.toml
  • skills/studio/agents/cf-generate-author-worker.md
  • skills/studio/agents/cf-phase-compiler.md
  • skills/studio/agents/cf-phase-runner.md
  • skills/studio/agents/cf-semantic-reviewer-consistency.md
  • skills/studio/agents/cf-semantic-reviewer-prompt.md
  • skills/studio/migrate-from-cypilot.md
  • skills/studio/modules/gates/creative-brainstorm-offer.md
  • skills/studio/modules/gates/language-complexity.md
  • skills/studio/modules/gates/migrate-from-cypilot-offer.md
  • skills/studio/modules/gates/plan-first.md
  • skills/studio/modules/review/finding-contract.md
  • skills/studio/modules/review/fix-approval.md
  • skills/studio/modules/routing/companion-skills.md
  • skills/studio/modules/runtime/template-vars.md
  • skills/studio/modules/session/shutdown.md
  • skills/studio/modules/subagents/dispatch.md
  • skills/studio/modules/subagents/git-commit-mode.md
  • skills/studio/modules/ui/next-actions.md
  • tests/test_workflow_parsing.py
  • tests/test_workflow_subagents_dispatch.py
  • workflows/plan.md
✅ Files skipped from review due to trivial changes (4)
  • skills/studio/modules/review/finding-contract.md
  • skills/studio/modules/gates/creative-brainstorm-offer.md
  • skills/studio/modules/gates/language-complexity.md
  • skills/studio/modules/runtime/template-vars.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • skills/studio/agents.toml

Comment on lines +128 to +140
7. [ ] - `p1` - If a task maps to multiple domains, agent offers compatible
companion workflows as a multi-select menu and invokes every selected
workflow sequentially, preserving each workflow's prerequisites, gates,
STOP_TURN boundaries, and approval requirements - `inst-companion-multi-select`
8. [ ] - `p1` - Root `cf` keeps only always-on bootstrap/routing/memory/command
rules; every conditional module is loaded through `ConditionalModuleLoading`
before use, and a rule may be moved out of the root skill only when its
trigger can be stated as one short stable `BEFORE`/`WHEN` loading rule -
`inst-cf-conditional-module-loading`
9. [ ] - `p1` - During cf load, agent reports both loaded always-on sources and
the conditional-module trigger table so the user can see which modules will
load when their conditions fire - `inst-cf-module-load-report`
approvals, and terminal boundaries - `inst-companion-multiselect`

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Delete the orphaned checklist tail.

Line 140 is a dangling duplicate of step 7 and even switches the instruction ID spelling, so the acceptance criteria read as two conflicting fragments. Merge it back into step 7 or remove it entirely.

🧹 Proposed fix
-  approvals, and terminal boundaries - `inst-companion-multiselect`
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
7. [ ] - `p1` - If a task maps to multiple domains, agent offers compatible
companion workflows as a multi-select menu and invokes every selected
workflow sequentially, preserving each workflow's prerequisites, gates,
STOP_TURN boundaries, and approval requirements - `inst-companion-multi-select`
8. [ ] - `p1` - Root `cf` keeps only always-on bootstrap/routing/memory/command
rules; every conditional module is loaded through `ConditionalModuleLoading`
before use, and a rule may be moved out of the root skill only when its
trigger can be stated as one short stable `BEFORE`/`WHEN` loading rule -
`inst-cf-conditional-module-loading`
9. [ ] - `p1` - During cf load, agent reports both loaded always-on sources and
the conditional-module trigger table so the user can see which modules will
load when their conditions fire - `inst-cf-module-load-report`
approvals, and terminal boundaries - `inst-companion-multiselect`
7. [ ] - `p1` - If a task maps to multiple domains, agent offers compatible
companion workflows as a multi-select menu and invokes every selected
workflow sequentially, preserving each workflow's prerequisites, gates,
STOP_TURN boundaries, and approval requirements - `inst-companion-multi-select`
8. [ ] - `p1` - Root `cf` keeps only always-on bootstrap/routing/memory/command
rules; every conditional module is loaded through `ConditionalModuleLoading`
before use, and a rule may be moved out of the root skill only when its
trigger can be stated as one short stable `BEFORE`/`WHEN` loading rule -
`inst-cf-conditional-module-loading`
9. [ ] - `p1` - During cf load, agent reports both loaded always-on sources and
the conditional-module trigger table so the user can see which modules will
load when their conditions fire - `inst-cf-module-load-report`
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@architecture/features/agent-integration.md` around lines 128 - 140, The
markdown file contains an orphaned text fragment on line 140 that reads
"approvals, and terminal boundaries - `inst-companion-multiselect`" which is a
dangling duplicate of step 7's acceptance criteria. This fragment uses an
inconsistent spelling of the instruction ID (multiselect instead of
multi-select) and creates conflicting acceptance criteria. Delete this orphaned
tail line entirely, as step 7 (the checklist item beginning with "If a task maps
to multiple domains...") already contains complete and correct acceptance
criteria.

Comment thread skills/studio/modules/subagents/dispatch.md
Signed-off-by: ainetx <viator@via-net.org>
Co-authored-by: Constructor Studio <291158726+constructor-studio[bot]@users.noreply.github.com>
Studio-Generated-By: Constructor Studio
Studio-Source-Repo: https://github.com/constructorfabric/studio
Constructor-Fabric: https://github.com/constructorfabric
@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant