Skip to content

feat(agents): Add software-engineer as universal default ACT agent #568

@JeremyDev87

Description

@JeremyDev87

Parent Issue

Closes part of #560

Problem

frontend-developer is currently the DEFAULT_ACT_AGENT — the fallback when no intent pattern matches. This is inappropriate for the majority of tasks:

Scenario frontend-developer provides Actually needed
NestJS API work React/Vue/CSS perspective Server logic expertise
Utility scripts UI component patterns Language-agnostic implementation
Refactoring Frontend best practices Domain-neutral code quality
Rust / Python / Go code Nothing relevant General programming competence

Solution

Create a new software-engineer agent designed specifically to be the universal default — domain-agnostic, language-agnostic, web-agnostic.

Why not just switch to backend-developer?

backend-developer still carries domain assumptions (APIs, servers, authentication). software-engineer is intentionally neutral:

Agent Domain assumption
frontend-developer Web UI, React/Vue/CSS
backend-developer APIs, servers, databases
software-engineer None — any language, any domain

Design Principles

software-engineer intentionally has no intent patterns.
It only activates when all other agents fail to match.
This is by design — it is the fallback of last resort.

Default behavior: analyze existing code context first, then implement without domain assumptions.

Implementation

1. Agent JSON — packages/rules/.ai-rules/agents/software-engineer.json

Key fields:

  • role: General-purpose implementation engineer
  • expertise: Language-agnostic coding (TypeScript, Python, Go, Rust, SQL, Shell), TDD, SOLID, Design Patterns, Refactoring, Algorithms & Data Structures
  • default_behavior: Read existing code context → infer domain → implement accordingly
  • no domain assumptions: Does not default to web UI, API, or any specific paradigm

2. keyword.types.ts

// Change default
export const DEFAULT_ACT_AGENT = 'software-engineer' as const;

// Add to ACT_PRIMARY_AGENTS — placed LAST to signal it's not a pattern-match target
export const ACT_PRIMARY_AGENTS = [
  'tooling-engineer',
  'platform-engineer',
  'data-engineer',
  'ai-ml-engineer',
  'mobile-developer',
  'frontend-developer',
  'backend-developer',
  'devops-engineer',
  'agent-architect',
  'software-engineer', // ← fallback default, no intent patterns
] as const;

// Add to ACT_AGENT_DISPLAY_INFO
'software-engineer': {
  name: 'Software Engineer',
  description: 'General-purpose engineer — any language, any domain, TDD-first',
},

3. act-agent.strategy.ts

Update fallback reason string:

'ACT mode default: software-engineer (no domain detected — language-agnostic generalist)'

4. act-mode.json

Update delegates_to from frontend-developer to software-engineer.

5. No changes to intent-pattern-checks.ts

software-engineer is intentionally excluded from intent patterns.

Acceptance Criteria

  • software-engineer.json created with full role definition
  • DEFAULT_ACT_AGENT changed to 'software-engineer'
  • software-engineer added to ACT_PRIMARY_AGENTS (last position)
  • software-engineer added to ACT_AGENT_DISPLAY_INFO
  • act-mode.json updated — delegates_to: software-engineer
  • Unit test: unrecognized prompts resolve to software-engineer (not frontend-developer)
  • Unit test: software-engineer is NOT selectable via intent patterns
  • All existing agent resolution tests pass (no regression)
  • plan-agent.strategy.ts fallback also benefits (references DEFAULT_ACT_AGENT)

Files

  • packages/rules/.ai-rules/agents/software-engineer.json (new)
  • apps/mcp-server/src/keyword/keyword.types.ts
  • apps/mcp-server/src/keyword/strategies/act-agent.strategy.ts
  • apps/mcp-server/src/keyword/strategies/act-agent.strategy.spec.ts
  • packages/rules/.ai-rules/agents/act-mode.json

Related

Metadata

Metadata

Assignees

Labels

featmcp-serverapps/mcp-serverpriority:shouldShould Have - 중요하지만 필수는 아님sub-issue상위 이슈의 하위 작업

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions