Skip to content

Commit dcac5ce

Browse files
shreyas-lyzrclaude
andcommitted
docs: add SkillsFlow pattern to README
Add deterministic multi-step workflow pattern matching the landing page, with YAML example showing skill/agent/tool step chaining. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent e0c2661 commit dcac5ce

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed

README.md

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,80 @@ Define `bootstrap.md` and `teardown.md` in the `hooks/` folder to control what a
158158

159159
<img src="patterns/agent-automation-hooks.png" alt="Agent Lifecycle Hooks" width="600" />
160160

161+
### SkillsFlow
162+
Deterministic, multi-step workflows defined in `workflows/` as YAML. Chain `skill:`, `agent:`, and `tool:` steps with `depends_on` ordering, `${{ }}` template data flow, and per-step `prompt:` overrides. Every run follows the same path — no LLM discretion on execution order.
163+
164+
```yaml
165+
name: code-review-flow
166+
description: Full code review pipeline
167+
triggers:
168+
- pull_request
169+
170+
steps:
171+
lint:
172+
skill: static-analysis
173+
inputs:
174+
path: ${{ trigger.changed_files }}
175+
176+
review:
177+
agent: code-reviewer
178+
depends_on: [lint]
179+
prompt: |
180+
Focus on security and performance.
181+
Flag any use of eval() or raw SQL.
182+
inputs:
183+
findings: ${{ steps.lint.outputs.issues }}
184+
185+
test:
186+
tool: bash
187+
depends_on: [lint]
188+
inputs:
189+
command: "npm test -- --coverage"
190+
191+
report:
192+
skill: review-summary
193+
depends_on: [review, test]
194+
conditions:
195+
- ${{ steps.review.outputs.severity != 'none' }}
196+
inputs:
197+
review: ${{ steps.review.outputs.comments }}
198+
coverage: ${{ steps.test.outputs.report }}
199+
200+
error_handling:
201+
on_failure: notify
202+
channel: "#eng-reviews"
203+
```
204+
205+
### Porting Framework Agents to GitAgent
206+
207+
Agents built in frameworks like NVIDIA AIQ, LangGraph, or CrewAI have their identity split across config files, Jinja2 templates, and Python code. gitagent extracts the **identity layer** — prompts, rules, roles, tool schemas — into a portable, versionable format.
208+
209+
> **What ports cleanly:** system prompts, persona definitions, hard constraints, tool schemas, role/SOD policies, model preferences.
210+
>
211+
> **What stays in the framework:** runtime orchestration (state machines, graph wiring), live tool execution, memory I/O, iterative loops.
212+
213+
This pattern is demonstrated with [NVIDIA's AIQ Deep Researcher](https://github.com/NVIDIA-AI-Blueprints/aiq) — a 3-agent hierarchy (orchestrator → planner → researcher) that produces cited research reports. The gitagent version captures the agent's identity, rules, and SOD policy so you can:
214+
215+
- **Fork for a new domain** — edit `SOUL.md` for legal/medical/finance research without touching Python
216+
- **Version prompts independently** — `git diff` when the orchestrator's style regresses
217+
- **Validate SOD** — `gitagent validate --compliance` ensures the orchestrator can't also be the researcher
218+
- **Export to other runtimes** — same identity on Claude Code, OpenAI, or as a raw system prompt
219+
220+
```
221+
examples/nvidia-deep-researcher/
222+
├── agent.yaml # Manifest + SOD policy
223+
├── SOUL.md # Orchestrator identity (from orchestrator.j2)
224+
├── RULES.md # Citation rules, report constraints
225+
├── DUTIES.md # Role separation: orchestrator ↔ planner ↔ researcher
226+
├── agents/planner/ # Planner sub-agent (from planner.j2)
227+
├── agents/researcher/ # Researcher sub-agent (from researcher.j2)
228+
├── skills/{web,paper,knowledge}-search/
229+
├── tools/*.yaml # MCP-compatible tool schemas
230+
└── config/ # Model assignments per environment
231+
```
232+
233+
See [`examples/nvidia-deep-researcher/`](examples/nvidia-deep-researcher/) for the full working example.
234+
161235
## Quick Start
162236
163237
```bash

0 commit comments

Comments
 (0)