The site that you are currently viewing is a static version of the Software Factory
documentation delivered with the
version v7.2.
For up-to-date documentation, see the
latest version.
Assist code development
2 minute read
Introduction
Coding assistants help software engineers turn a clearly scoped intent — such as a bug fix, a small feature, or a bounded refactor — into a reviewable code change faster. Their value is strongest when developers need to work in unfamiliar areas of a codebase, apply existing patterns consistently, or reduce boilerplate without changing intended behavior. The key benefit is closing the gap between an idea and the smallest safe implementation, while keeping developers in control of quality, testing, security, and architectural consistency.
Key principles
- Keep the scope explicit and narrow: describe the task, constraints, relevant files, and expected behavior so the assistant produces a minimal change.
- Prefer small, reviewable patches over large rewrites, and preserve existing contracts, architecture, naming conventions, and security or performance constraints unless a change is explicitly requested.
- Work iteratively: ask for the next smallest change, validate it with tests and checks, then refine or extend only if needed.
- Maintain developer ownership: every suggestion should be understandable, justified, and easy to verify before acceptance.
Examples
- Generate a new function from an existing signature, expected inputs and outputs, and one representative test case.
- Request a localized bug fix as a diff limited to one or two files, with unchanged public APIs and no extra dependencies.
- Refactor a small code block to align with existing project patterns while preserving behavior and running the relevant tests afterward.
Drawbacks / anti-patterns
- Asking the assistant to rewrite entire modules rather than generating targeted changes.
- Allowing assistants to introduce new dependencies without review or justification.
- Accepting suggestions that modify unrelated parts of the codebase.
- Generating code without validating its correctness, performance implications, or security constraints.
- Providing excessive context that results in drift or unintended modifications.