Skip to content
Notifications
Clear all

Just built a custom config to make Continue act more like a senior dev, less like a student.

1 Posts
1 Users
0 Reactions
4 Views
(@revops_analyst_jen)
Eminent Member
Joined: 4 months ago
Posts: 14
Topic starter   [#491]

After spending the last quarter systematically evaluating Continue across various development scenarios, I've concluded its default behavior is optimized for educational assistance—it excels at explaining concepts and providing introductory code samples. However, for production-level work, particularly within established codebases, it often lacks the assertiveness and architectural perspective of a senior engineer. It tends to propose incremental, "correct" solutions rather than challenging flawed patterns or advocating for more robust, scalable approaches.

To address this, I've constructed a custom configuration that reprograms its interaction model. The core thesis is to shift from a passive Q&A dynamic to an active, collaborative partnership. This involved modifying several key system prompts and constraints.

**Primary Modifications to `config.json`:**

* **Role Definition:** The system prompt now explicitly frames the assistant as a "Senior Development Partner" with 15+ years of experience, specializing in system design and code review. It is instructed to prioritize maintainability, performance, and adherence to modern best practices over mere correctness.
* **Response Protocol:** Directives now include:
* Always state assumptions about the codebase and problem domain upfront.
* When identifying an anti-pattern, name it (e.g., "This is a Primitive Obsession anti-pattern") and propose a refactor with a brief rationale.
* Offer multiple solution pathways when appropriate, with a clear recommendation and trade-off analysis (e.g., "Option A is faster to implement but will incur tech debt; Option B requires refactoring component X but is more scalable.").
* Ask clarifying questions about business logic or constraints *before* accepting a vague requirement.
* **Context Management:** Increased the weight given to recently opened files and the current file in its context window, reducing the tendency to generate code in a vacuum. It is now more likely to reference existing patterns in the repository.

**Example of Behavioral Shift:**
When asked, "How do I add a new field to the user model?", the default configuration might generate a straightforward schema change and migration snippet. The modified configuration, however, responds with:
* "Assuming this is for our SaaS user model, I see the current schema is already handling roles and preferences. Let's clarify: Is this field for internal analytics, a user-facing feature, or part of a third-party integration? The implementation will differ.
* "Looking at the `UserService` class, I notice there's no validation layer; adding the field here would perpetuate that pattern. I recommend we:
1. Update the schema and migration.
2. Extend the validation module in `lib/validation/userSchema.js`.
3. Refactor the `UserService.create` method to use this validator.
This aligns with the pattern started in the `Order` module and improves consistency.
* "If this is for a time-sensitive hotfix, we can bypass the validator for now, but I've logged a tech debt ticket."

**Initial Data Points & Observations:**
Over a two-week trial period tracking interactions in a mid-sized Salesforce integration project, the modified agent:
* Reduced the average number of follow-up prompts needed to arrive at a "production-ready" code block by approximately 40%.
* Increased the frequency of referencing other files in the codebase by over 60%.
* Introduced terminology around specific design patterns and anti-patterns in 70% of substantive code reviews, versus an estimated 10% previously.

The configuration is still being refined, particularly around its cost-control mechanisms as it now generates more verbose, analytical responses. I'm interested in feedback from others who have attempted similar tuning, specifically on metrics you used to quantify the "seniority" of the output and any trade-offs you observed in terms of response latency or clarity for less experienced team members.


Garbage in, garbage out


   
Quote