Skip to content

feat: Add scale-pilot template#293

Open
Samakcha wants to merge 9 commits into
Lamatic:mainfrom
Samakcha:main
Open

feat: Add scale-pilot template#293
Samakcha wants to merge 9 commits into
Lamatic:mainfrom
Samakcha:main

Conversation

@Samakcha

@Samakcha Samakcha commented Jul 24, 2026

Copy link
Copy Markdown

PR Checklist

1. Select Contribution Type

  • Kit (kits/<name>/ + apps/)
  • Bundle (kits/<name>/)
  • Template (kits/<name>/)

2. General Requirements

  • PR is for one project only (no unrelated changes)
  • No secrets, API keys, or real credentials are committed
  • Folder name uses kebab-case and matches the flow ID
  • All changes are documented in README.md (purpose, setup, usage)

3. File Structure

  • lamatic.config.ts present with valid metadata (name, description, type, author, tags, steps, links)
  • agent.md present
  • README.md present
  • flows/<flow-name>.ts exists for every step in lamatic.config.ts
  • constitutions/default.md present
  • All @reference paths resolve correctly (prompts/, model-configs/, constitutions/)
  • .env.example included (Bundles/Kits only)
  • apps/ directory included (Kits only)

4. Validation

  • Flow exported from Lamatic Studio
  • PR title follows the required feat: format
  • GitHub Actions workflows pass (after PR creation)
  • All CodeRabbit or reviewer comments are addressed and resolved
  • No unrelated files or projects are modified
  • Added new kits/scale-pilot/ kit (kebab-case) including:
    • kits/scale-pilot/.gitignore (Lamatic artifacts, node_modules, .env/.env.local)
    • kits/scale-pilot/README.md (ScalePilot workflow overview, included files, features, setup/usage/deploy/test, example I/O, use cases)
    • kits/scale-pilot/agent.md (end-to-end agent documentation: chat trigger → JSON parsing → missing-info check → follow-ups vs report)
    • kits/scale-pilot/constitutions/default.md (assistant identity, safety rules, PII/data-handling guidance, tone guidance)
    • kits/scale-pilot/lamatic.config.ts (template metadata + required scale-pilot step)
    • kits/scale-pilot/flows/scale-pilot.ts (Lamatic flow definition)
    • kits/scale-pilot/model-configs/:
      • scale-pilot_instructor-llmnode-493_generative-model-name.ts
      • scale-pilot_llmnode-558_generative-model-name.ts
      • scale-pilot_llmnode-741_generative-model-name.ts
    • kits/scale-pilot/prompts/:
      • Instructor (JSON extraction) prompts:
        • scale-pilot_instructor-llmnode-493_system_0.md
        • scale-pilot_instructor-llmnode-493_user_1.md
      • Architecture evolution report prompts:
        • scale-pilot_llmnode-558_system_0.md
        • scale-pilot_llmnode-558_system_1.md
        • scale-pilot_llmnode-558_system_2.md
        • scale-pilot_llmnode-558_system_3.md
        • scale-pilot_llmnode-558_user_4.md
      • Follow-up questions prompts:
        • scale-pilot_llmnode-741_system_0.md
        • scale-pilot_llmnode-741_user_1.md
  • Flow high-level behavior (from kits/scale-pilot/flows/scale-pilot.ts):
    • Node types introduced: chat trigger node, multiple dynamic nodes, a condition node for branching, and a response node for final output composition.
    • What it does:
      • Trigger accepts a user’s software architecture description.
      • Dynamic “Instructor” step generates strictly schema-valid JSON and flags whether key fields are missing (has_missing_information + missing_information).
      • Condition branches:
        • If information is missing: generate the minimal set of follow-up questions (one per missing field).
        • Otherwise: generate the architecture evolution report from the extracted structured details.
      • Response node returns the generated text from the selected branch (final chat response).

@coderabbitai

coderabbitai Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

@Samakcha, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 7 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Repository UI (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: d3df0c0d-a8f4-460e-8371-0450fd857c56

📥 Commits

Reviewing files that changed from the base of the PR and between a9c2eca and f320f63.

📒 Files selected for processing (1)
  • kits/scale-pilot/prompts/scale-pilot_llmnode-558_user_4.md

Walkthrough

Changes

ScalePilot adds a Lamatic architecture-assessment kit with a chat-triggered flow, structured architecture extraction, missing-information follow-ups, conditional report generation, model configurations, prompts, constitution, and template metadata.

ScalePilot template

Layer / File(s) Summary
Template foundation
kits/scale-pilot/.gitignore, kits/scale-pilot/lamatic.config.ts, kits/scale-pilot/constitutions/default.md, kits/scale-pilot/README.md, kits/scale-pilot/agent.md
Adds template metadata, repository ignore rules, behavioral directives, and setup and workflow documentation.
Flow graph and bindings
kits/scale-pilot/flows/scale-pilot.ts
Defines the chat trigger, instructor node, completeness condition, follow-up/report branches, response node, graph edges, and exported flow configuration.
Architecture extraction and follow-up
kits/scale-pilot/model-configs/scale-pilot_instructor-llmnode-493_generative-model-name.ts, kits/scale-pilot/prompts/scale-pilot_instructor-llmnode-493_*, kits/scale-pilot/prompts/scale-pilot_llmnode-741_*
Configures architecture-field extraction, missing-information detection, and concise follow-up questions.
Architecture report generation
kits/scale-pilot/model-configs/scale-pilot_llmnode-558_generative-model-name.ts, kits/scale-pilot/prompts/scale-pilot_llmnode-558_*
Configures architecture analysis, recommendations, evolution planning, and structured report generation.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise and relevant, and it summarizes the main change even if the project is a kit rather than a generic template.
Description check ✅ Passed The PR description follows the required checklist structure and covers the main required sections for this kit.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@github-actions

Copy link
Copy Markdown
Contributor

:robot_face: AgentKit Structural Validation

New Contributions Detected

  • Template: kits/scale-pilot

Check Results

Check Status
No edits to existing kits ✅ Pass
Required root files present ✅ Pass
Flow .ts files present ✅ Pass
lamatic.config.ts valid ✅ Pass
No changes outside kits/ ✅ Pass

🎉 All checks passed! This contribution follows the AgentKit structure.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 9

🤖 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 `@kits/scale-pilot/flows/scale-pilot.ts`:
- Around line 83-100: Update the chatConfig within the Chat Widget definition to
replace Lamatic-specific botName, greetingMessage, and suggestions with
ScalePilot branding and architecture-review starter prompts. Ensure each default
suggestion is relevant to ScalePilot and produces an appropriate architecture
parser flow; leave unrelated widget settings unchanged.
- Line 124: Update the object schema in InstructorLLMNode_493.schema to include
a required array covering at least has_missing_information and
missing_information, preferably every declared parser output field. Regenerate
the flow export so conditionNode_766 always receives these required fields.

In
`@kits/scale-pilot/model-configs/scale-pilot_instructor-llmnode-493_generative-model-name.ts`:
- Around line 9-12: Remove the hard-coded credentialId values from both model
configs:
kits/scale-pilot/model-configs/scale-pilot_instructor-llmnode-493_generative-model-name.ts
lines 9-12 and
kits/scale-pilot/model-configs/scale-pilot_llmnode-741_generative-model-name.ts
lines 9-12. Keep the model_name, provider_name, and credential_name metadata,
and arrange for the credential binding to be supplied at deployment/runtime.

In
`@kits/scale-pilot/model-configs/scale-pilot_llmnode-558_generative-model-name.ts`:
- Around line 9-13: Replace the hard-coded UUID in the model configuration’s
credentialId field with the platform’s credential placeholder or
credential-selection mechanism, while preserving the Gemini provider and
credential_name values. Ensure importing this template remaps the placeholder to
the user-configured Gemini credential before execution.

In `@kits/scale-pilot/prompts/scale-pilot_instructor-llmnode-493_system_0.md`:
- Line 18: Configure markdownlint to ignore MD041 for
kits/scale-pilot/prompts/**/*.md, preserving these files as direct LLM
instructions without adding headings. Ensure exactly one trailing newline in
kits/scale-pilot/prompts/scale-pilot_instructor-llmnode-493_system_0.md (18-18),
kits/scale-pilot/prompts/scale-pilot_instructor-llmnode-493_user_1.md (2-2),
kits/scale-pilot/prompts/scale-pilot_llmnode-741_system_0.md (11-11), and
kits/scale-pilot/prompts/scale-pilot_llmnode-741_user_1.md (3-3) to satisfy
MD047.
- Around line 12-18: Update the output schema for InstructorLLMNode_493 to
include both missing_information and has_missing_information in its required
fields list. Preserve their existing definitions and ensure downstream condition
and missing-information prompt logic receives both fields consistently.

In `@kits/scale-pilot/prompts/scale-pilot_instructor-llmnode-493_user_1.md`:
- Line 2: In
kits/scale-pilot/prompts/scale-pilot_instructor-llmnode-493_user_1.md:2, wrap
the injected chatMessage in explicit delimiters and instruct the parser to treat
the delimited content solely as user data, not instructions. In
kits/scale-pilot/prompts/scale-pilot_llmnode-741_user_1.md:2, restrict
missing_information to the permitted schema strings and serialize the list
before inserting it into the prompt.

In `@kits/scale-pilot/prompts/scale-pilot_llmnode-558_system_2.md`:
- Around line 142-148: The prompt’s internal Resilience field is not included in
the evaluated quality attributes, leaving report generation without a guaranteed
assessment. Update the quality-attribute list in the prompt to include
Resilience and apply the existing state, engineering reasoning, and confidence
requirements, preserving the report schema’s expected Resilience field.

In `@kits/scale-pilot/prompts/scale-pilot_llmnode-558_user_4.md`:
- Around line 1-18: Update the prompt using the parsed architecture fields from
InstructorLLMNode_493 to wrap all interpolated values in explicit data
delimiters, and add an instruction that any instructions within those field
values must be ignored and treated only as data. Preserve the existing report
requirements and field structure while ensuring the entire payload is clearly
separated from authoritative prompt instructions.
🪄 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: Repository UI (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: e38c8b5f-b5fc-4ea8-8367-41e5a4c89e23

📥 Commits

Reviewing files that changed from the base of the PR and between 2f0b57e and 08e8255.

📒 Files selected for processing (18)
  • kits/scale-pilot/.gitignore
  • kits/scale-pilot/README.md
  • kits/scale-pilot/agent.md
  • kits/scale-pilot/constitutions/default.md
  • kits/scale-pilot/flows/scale-pilot.ts
  • kits/scale-pilot/lamatic.config.ts
  • kits/scale-pilot/model-configs/scale-pilot_instructor-llmnode-493_generative-model-name.ts
  • kits/scale-pilot/model-configs/scale-pilot_llmnode-558_generative-model-name.ts
  • kits/scale-pilot/model-configs/scale-pilot_llmnode-741_generative-model-name.ts
  • kits/scale-pilot/prompts/scale-pilot_instructor-llmnode-493_system_0.md
  • kits/scale-pilot/prompts/scale-pilot_instructor-llmnode-493_user_1.md
  • kits/scale-pilot/prompts/scale-pilot_llmnode-558_system_0.md
  • kits/scale-pilot/prompts/scale-pilot_llmnode-558_system_1.md
  • kits/scale-pilot/prompts/scale-pilot_llmnode-558_system_2.md
  • kits/scale-pilot/prompts/scale-pilot_llmnode-558_system_3.md
  • kits/scale-pilot/prompts/scale-pilot_llmnode-558_user_4.md
  • kits/scale-pilot/prompts/scale-pilot_llmnode-741_system_0.md
  • kits/scale-pilot/prompts/scale-pilot_llmnode-741_user_1.md

Comment thread kits/scale-pilot/flows/scale-pilot.ts Outdated
Comment thread kits/scale-pilot/flows/scale-pilot.ts Outdated
Comment thread kits/scale-pilot/prompts/scale-pilot_instructor-llmnode-493_user_1.md Outdated
Comment thread kits/scale-pilot/prompts/scale-pilot_llmnode-558_system_2.md
Comment thread kits/scale-pilot/prompts/scale-pilot_llmnode-558_user_4.md

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (2)
kits/scale-pilot/prompts/scale-pilot_llmnode-558_user_4.md (1)

19-19: 🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

Mission control: close the architecture-data boundary correctly.

Line 3 opens <architecture_data>, but Line 19 closes </achitecture_data> with a missing r. Correct the delimiter before relying on it to isolate interpolated, untrusted architecture data.

Suggested correction
-</achitecture_data>
+</architecture_data>
🤖 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 `@kits/scale-pilot/prompts/scale-pilot_llmnode-558_user_4.md` at line 19,
Correct the closing XML-style delimiter in the architecture-data prompt from the
misspelled achitecture_data tag to architecture_data, matching the opening
delimiter so interpolated architecture data is properly bounded.
kits/scale-pilot/flows/scale-pilot.ts (1)

125-125: 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Mission critical: make the branch predicate mandatory.

The embedded InstructorLLMNode_493 schema does not require has_missing_information or missing_information, yet conditionNode_766 depends on has_missing_information. A partial {} response can therefore take the report path with incomplete data. Add an object-level required list and regenerate the Studio export.

Suggested schema correction
-  }
+  },
+  "required": [
+    "missing_information",
+    "has_missing_information"
+  ]
 }
🤖 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 `@kits/scale-pilot/flows/scale-pilot.ts` at line 125, Update the embedded
schema for InstructorLLMNode_493 to add an object-level required list containing
has_missing_information and missing_information, so conditionNode_766 always
receives the fields it evaluates. Regenerate the Studio export while preserving
the existing property definitions.
🤖 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 `@kits/scale-pilot/prompts/scale-pilot_instructor-llmnode-493_user_1.md`:
- Around line 1-4: Update the prompt surrounding the user-controlled
{{triggerNode_1.output.chatMessage}} in the extraction instruction to explicitly
classify its contents as untrusted data, not instructions. Tell the extractor to
ignore any commands or instruction-like text inside the user message and follow
only the defined JSON schema and prompt requirements.

---

Duplicate comments:
In `@kits/scale-pilot/flows/scale-pilot.ts`:
- Line 125: Update the embedded schema for InstructorLLMNode_493 to add an
object-level required list containing has_missing_information and
missing_information, so conditionNode_766 always receives the fields it
evaluates. Regenerate the Studio export while preserving the existing property
definitions.

In `@kits/scale-pilot/prompts/scale-pilot_llmnode-558_user_4.md`:
- Line 19: Correct the closing XML-style delimiter in the architecture-data
prompt from the misspelled achitecture_data tag to architecture_data, matching
the opening delimiter so interpolated architecture data is properly bounded.
🪄 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: Repository UI (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 06f4f8c6-f06f-460c-8ab2-09b427dacec2

📥 Commits

Reviewing files that changed from the base of the PR and between 08e8255 and 43fb469.

📒 Files selected for processing (4)
  • kits/scale-pilot/flows/scale-pilot.ts
  • kits/scale-pilot/prompts/scale-pilot_instructor-llmnode-493_user_1.md
  • kits/scale-pilot/prompts/scale-pilot_llmnode-558_system_2.md
  • kits/scale-pilot/prompts/scale-pilot_llmnode-558_user_4.md

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant