agent-eng 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# agent-eng
|
|
2
2
|
|
|
3
|
-
Scaffold a structured agentic engineering workflow into any project. Run one command to set up the directory structure, system prompts, templates, and conventions for AI-assisted development with separated roles (Architect, Planner, Executor, Reviewer).
|
|
3
|
+
Scaffold a structured agentic engineering workflow into any project. Run one command to set up the directory structure, system prompts, templates, and conventions for AI-assisted development with separated roles (Architect, Planner, Executor, Reviewer) and system architecture documentation.
|
|
4
4
|
|
|
5
5
|
## Quick Start
|
|
6
6
|
|
|
@@ -12,7 +12,8 @@ This creates the following structure in your project:
|
|
|
12
12
|
|
|
13
13
|
```
|
|
14
14
|
├── CLAUDE.md # Project instructions for AI agents
|
|
15
|
-
├── orchestration.yaml #
|
|
15
|
+
├── orchestration.yaml # Agent workflow definition (roles, outputs)
|
|
16
|
+
├── architecture.yaml # System architecture definition (components, connections)
|
|
16
17
|
├── architecture/
|
|
17
18
|
│ ├── overview.md # High-level architecture overview
|
|
18
19
|
│ └── decisions/
|
|
@@ -20,6 +21,7 @@ This creates the following structure in your project:
|
|
|
20
21
|
│ └── 0001-how-we-work.md # Seed ADR: the workflow itself
|
|
21
22
|
├── prompts/
|
|
22
23
|
│ ├── architect.md # System prompt for the Architect role
|
|
24
|
+
│ ├── system-architect.md # System prompt for system architecture mapping
|
|
23
25
|
│ ├── planner.md # System prompt for the Planner role
|
|
24
26
|
│ └── reviewer.md # System prompt for the Reviewer role
|
|
25
27
|
├── specs/
|
|
@@ -60,25 +62,37 @@ agent-eng init --force
|
|
|
60
62
|
|
|
61
63
|
## The Workflow
|
|
62
64
|
|
|
63
|
-
The scaffolded workflow separates AI-assisted engineering into
|
|
65
|
+
The scaffolded workflow separates AI-assisted engineering into five roles:
|
|
64
66
|
|
|
65
67
|
| Role | What it does | What it produces |
|
|
66
68
|
|------|-------------|-----------------|
|
|
67
69
|
| **Architect** | Analyzes requirements, asks clarifying questions, evaluates alternatives | Architecture Decision Records (ADRs) |
|
|
70
|
+
| **System Architect** | Maps the runtime system: components, connections, protocols, tiers | `architecture.yaml` |
|
|
68
71
|
| **Planner** | Reads ADRs and specs, decomposes work into focused chunks | Tickets with acceptance criteria |
|
|
69
72
|
| **Executor** | Implements tickets following conventions, proposes plan first | Code and PRs |
|
|
70
73
|
| **Reviewer** | Validates code against acceptance criteria and ADRs | Approval or actionable feedback |
|
|
71
74
|
|
|
72
75
|
Each role has a dedicated system prompt in `prompts/` that you can load into your AI assistant to set the context for that type of work.
|
|
73
76
|
|
|
77
|
+
## YAML Definitions
|
|
78
|
+
|
|
79
|
+
### `orchestration.yaml` — Agent Workflow
|
|
80
|
+
|
|
81
|
+
Defines the agent roles, their outputs, and how they connect. Used to visualize the development workflow.
|
|
82
|
+
|
|
83
|
+
### `architecture.yaml` — System Architecture
|
|
84
|
+
|
|
85
|
+
Defines the runtime system components, their tiers (client/service/engine/data), technologies, subcomponents, and connections with protocols. Used to visualize the system architecture.
|
|
86
|
+
|
|
74
87
|
## After Initialization
|
|
75
88
|
|
|
76
89
|
1. **Review `CLAUDE.md`** — Customize the project instructions for your specific project
|
|
77
90
|
2. **Pick your conventions** — Keep the ones that match your stack, remove the rest
|
|
78
|
-
3. **Start with the Architect** — Load `prompts/architect.md` and create your first ADR
|
|
79
|
-
4. **
|
|
80
|
-
5. **
|
|
81
|
-
6. **
|
|
91
|
+
3. **Start with the Architect** — Load `prompts/architect.md` and create your first ADR
|
|
92
|
+
4. **Map the system** — Load `prompts/system-architect.md` and create your `architecture.yaml`
|
|
93
|
+
5. **Plan the work** — Load `prompts/planner.md` and decompose your ADR into tickets
|
|
94
|
+
6. **Execute** — Pick up a ticket and implement it following your conventions
|
|
95
|
+
7. **Review** — Load `prompts/reviewer.md` to validate the work
|
|
82
96
|
|
|
83
97
|
## License
|
|
84
98
|
|
package/package.json
CHANGED
package/src/init.js
CHANGED
|
@@ -12,9 +12,11 @@ const STRUCTURE = [
|
|
|
12
12
|
"prompts/architect.md",
|
|
13
13
|
"prompts/planner.md",
|
|
14
14
|
"prompts/reviewer.md",
|
|
15
|
+
"prompts/system-architect.md",
|
|
15
16
|
"specs/_template.md",
|
|
16
17
|
"tickets/_template.md",
|
|
17
18
|
"orchestration.yaml",
|
|
19
|
+
"architecture.yaml",
|
|
18
20
|
"CLAUDE.md",
|
|
19
21
|
];
|
|
20
22
|
|
package/src/templates/CLAUDE.md
CHANGED
|
@@ -9,6 +9,7 @@ This project separates AI-assisted work into four roles. Each role has a dedicat
|
|
|
9
9
|
| Role | Prompt | Responsibility |
|
|
10
10
|
|------|--------|----------------|
|
|
11
11
|
| **Architect** | `prompts/architect.md` | Analyze requirements, ask clarifying questions, produce ADRs |
|
|
12
|
+
| **System Architect** | `prompts/system-architect.md` | Map and document system architecture as `architecture.yaml` |
|
|
12
13
|
| **Planner** | `prompts/planner.md` | Decompose specs and ADRs into actionable tickets |
|
|
13
14
|
| **Executor** | _(you, the coding agent)_ | Implement tickets following conventions |
|
|
14
15
|
| **Reviewer** | `prompts/reviewer.md` | Validate code against acceptance criteria and ADRs |
|
|
@@ -21,9 +22,11 @@ This project separates AI-assisted work into four roles. Each role has a dedicat
|
|
|
21
22
|
4. Propose a plan before writing code — get alignment first
|
|
22
23
|
5. If the ticket touches an existing ADR's scope, verify the decision still holds
|
|
23
24
|
|
|
24
|
-
## Key Directories
|
|
25
|
+
## Key Files and Directories
|
|
25
26
|
|
|
26
27
|
- `architecture/decisions/` — Architecture Decision Records (ADRs)
|
|
28
|
+
- `architecture.yaml` — System architecture definition (components, connections, tiers)
|
|
29
|
+
- `orchestration.yaml` — Agent workflow definition (roles, outputs, connections)
|
|
27
30
|
- `specs/` — Feature specifications
|
|
28
31
|
- `tickets/` — Work items with acceptance criteria
|
|
29
32
|
- `conventions/` — Language and framework coding standards
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
name: Project Name
|
|
2
|
+
description: One-line description of the system
|
|
3
|
+
|
|
4
|
+
components:
|
|
5
|
+
- id: component_id
|
|
6
|
+
title: Component Name
|
|
7
|
+
description: What this component does
|
|
8
|
+
technology: Main technology used
|
|
9
|
+
tier: client # client | service | engine | data
|
|
10
|
+
color: indigo # indigo | amber | green | blue
|
|
11
|
+
subcomponents:
|
|
12
|
+
- name: Sub Name
|
|
13
|
+
detail: Short description of this subcomponent
|
|
14
|
+
|
|
15
|
+
connections:
|
|
16
|
+
- from: component_id
|
|
17
|
+
to: other_component_id
|
|
18
|
+
label: What flows between them
|
|
19
|
+
protocol: HTTP # WebRTC | HTTP | gRPC | WebSocket | MCP | In-process | etc.
|
|
20
|
+
style: sync # sync | async | stream
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: Agentic Workflow
|
|
2
|
-
description:
|
|
2
|
+
description: Five-role pipeline for AI-assisted software engineering
|
|
3
3
|
|
|
4
4
|
agents:
|
|
5
5
|
- id: architect
|
|
@@ -13,6 +13,17 @@ agents:
|
|
|
13
13
|
color: indigo
|
|
14
14
|
docLink: /prompts/architect.md
|
|
15
15
|
|
|
16
|
+
- id: system-architect
|
|
17
|
+
title: System Architect
|
|
18
|
+
tagline: Maps the runtime system architecture
|
|
19
|
+
description: Identifies components, connections, protocols, and tiers. Produces a structured architecture.yaml that documents how the system fits together.
|
|
20
|
+
outputs:
|
|
21
|
+
- architecture.yaml
|
|
22
|
+
- Component map
|
|
23
|
+
- Connection diagram
|
|
24
|
+
color: green
|
|
25
|
+
docLink: /prompts/system-architect.md
|
|
26
|
+
|
|
16
27
|
- id: planner
|
|
17
28
|
title: Planner
|
|
18
29
|
tagline: Decomposes specs into actionable work
|
|
@@ -48,9 +59,13 @@ agents:
|
|
|
48
59
|
|
|
49
60
|
connections:
|
|
50
61
|
- from: architect
|
|
51
|
-
to:
|
|
62
|
+
to: system-architect
|
|
52
63
|
artifact: ADRs · Specs
|
|
53
64
|
|
|
65
|
+
- from: system-architect
|
|
66
|
+
to: planner
|
|
67
|
+
artifact: architecture.yaml
|
|
68
|
+
|
|
54
69
|
- from: planner
|
|
55
70
|
to: executor
|
|
56
71
|
artifact: Tickets
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# System Architect Prompt
|
|
2
|
+
|
|
3
|
+
You are a system architect agent. Your role is to define and document the system architecture of a project as a structured `architecture.yaml` file.
|
|
4
|
+
|
|
5
|
+
## Responsibilities
|
|
6
|
+
|
|
7
|
+
1. **Map the system** — Identify all major components, their responsibilities, and technologies
|
|
8
|
+
2. **Define tiers** — Classify components into tiers: client, service, engine, data
|
|
9
|
+
3. **Trace connections** — Document how components communicate, including protocols and data flow patterns
|
|
10
|
+
4. **Surface subcomponents** — Break down complex components into their internal parts
|
|
11
|
+
5. **Keep it current** — Update `architecture.yaml` when the system changes
|
|
12
|
+
|
|
13
|
+
## Constraints
|
|
14
|
+
|
|
15
|
+
- You produce an `architecture.yaml` file, not code
|
|
16
|
+
- Focus on runtime architecture, not build-time or CI/CD
|
|
17
|
+
- Each component should be a deployable or independently identifiable unit
|
|
18
|
+
- Connections should reflect actual runtime communication, not code dependencies
|
|
19
|
+
|
|
20
|
+
## Process
|
|
21
|
+
|
|
22
|
+
1. Read the codebase structure, README, and any existing architecture docs
|
|
23
|
+
2. Identify the major components and their boundaries
|
|
24
|
+
3. For each component:
|
|
25
|
+
- Choose a clear, concise title
|
|
26
|
+
- Write a one-sentence description of its responsibility
|
|
27
|
+
- Note the primary technology
|
|
28
|
+
- Assign a tier (client → service → engine → data)
|
|
29
|
+
- List key subcomponents if the component is complex
|
|
30
|
+
4. Map connections between components:
|
|
31
|
+
- What data flows between them
|
|
32
|
+
- What protocol is used
|
|
33
|
+
- Whether the communication is sync, async, or streaming
|
|
34
|
+
5. Write the `architecture.yaml` at the project root
|
|
35
|
+
|
|
36
|
+
## Output Format
|
|
37
|
+
|
|
38
|
+
Use the template from `architecture.yaml`:
|
|
39
|
+
|
|
40
|
+
```yaml
|
|
41
|
+
name: Project Name
|
|
42
|
+
description: One-line description
|
|
43
|
+
|
|
44
|
+
components:
|
|
45
|
+
- id: unique_id
|
|
46
|
+
title: Display Name
|
|
47
|
+
description: What this component does
|
|
48
|
+
technology: Main tech
|
|
49
|
+
tier: client | service | engine | data
|
|
50
|
+
color: indigo | amber | green | blue
|
|
51
|
+
subcomponents:
|
|
52
|
+
- name: Sub Name
|
|
53
|
+
detail: Short detail
|
|
54
|
+
|
|
55
|
+
connections:
|
|
56
|
+
- from: component_id
|
|
57
|
+
to: other_component_id
|
|
58
|
+
label: What flows between them
|
|
59
|
+
protocol: HTTP | WebSocket | gRPC | etc.
|
|
60
|
+
style: sync | async | stream
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Tier Guidelines
|
|
64
|
+
|
|
65
|
+
| Tier | What belongs here |
|
|
66
|
+
|------|------------------|
|
|
67
|
+
| **client** | Browser, mobile app, CLI, anything the user directly interacts with |
|
|
68
|
+
| **service** | Backend services, APIs, pipelines, orchestrators |
|
|
69
|
+
| **engine** | Core logic, rules engines, ML models, processing units |
|
|
70
|
+
| **data** | Databases, caches, queues, file storage, state stores |
|
|
71
|
+
|
|
72
|
+
## Color Guidelines
|
|
73
|
+
|
|
74
|
+
Use colors to visually group related components:
|
|
75
|
+
- **indigo** — Primary/core components
|
|
76
|
+
- **amber** — Orchestration, pipeline, or coordination components
|
|
77
|
+
- **green** — Processing, logic, or computation components
|
|
78
|
+
- **blue** — Data, storage, or infrastructure components
|
|
79
|
+
|
|
80
|
+
## Anti-patterns to Avoid
|
|
81
|
+
|
|
82
|
+
- Listing every file or class as a component (too granular)
|
|
83
|
+
- Missing connections between components that clearly communicate
|
|
84
|
+
- Vague descriptions ("handles stuff")
|
|
85
|
+
- Inconsistent tier assignments for similar components
|