mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-10-11 03:40:05 +00:00
Rename NLSpec Convergence to NLSpec Conformance in docs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
5eaa653d1f
commit
64b45d1670
4 changed files with 15 additions and 15 deletions
|
|
@ -107,7 +107,7 @@
|
|||
"pages": [
|
||||
"examples/solitaire",
|
||||
"examples/semantic-port",
|
||||
"examples/nlspec-convergence",
|
||||
"examples/nlspec-conformance",
|
||||
"examples/clone-substack"
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -724,7 +724,7 @@ To adapt for your project:
|
|||
## Further reading
|
||||
|
||||
<Columns cols={2}>
|
||||
<Card title="NLSpec Convergence" icon="arrows-rotate" href="/examples/nlspec-convergence">
|
||||
<Card title="NLSpec Conformance" icon="arrows-rotate" href="/examples/nlspec-conformance">
|
||||
A simpler implement-test-fix loop for spec-driven development.
|
||||
</Card>
|
||||
<Card title="Ensemble" icon="users" href="/tutorials/ensemble">
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
---
|
||||
title: "NLSpec Convergence"
|
||||
title: "NLSpec Conformance"
|
||||
description: "Implement a system from a natural language specification and iterate until conformance tests pass"
|
||||
---
|
||||
|
||||
The NLSpec Convergence pattern gives an agent a detailed specification document, has it build an implementation, and then loops on automated conformance tests until the implementation converges on full compliance. This is the same pattern used by benchmarks like [AttractorBench](https://github.com/strongdm/attractorbench) to measure how well agents follow complex specs.
|
||||
The NLSpec Conformance pattern gives an agent a detailed specification document, has it build an implementation, and then loops on automated conformance tests until the implementation achieves full conformance. This is the same pattern used by benchmarks like [AttractorBench](https://github.com/strongdm/attractorbench) to measure how well agents follow complex specs.
|
||||
|
||||
## When to use this
|
||||
|
||||
|
|
@ -14,11 +14,11 @@ The NLSpec Convergence pattern gives an agent a detailed specification document,
|
|||
## The workflow
|
||||
|
||||
<Frame>
|
||||
<img src="/images/nlspec-convergence.svg" alt="NLSpec Convergence workflow: Start → Plan → Implement → Quick Tests → Quick passing? → Full Tests → All passing? → Exit, with Fix Failures loop" />
|
||||
<img src="/images/nlspec-conformance.svg" alt="NLSpec Conformance workflow: Start → Plan → Implement → Quick Tests → Quick passing? → Full Tests → All passing? → Exit, with Fix Failures loop" />
|
||||
</Frame>
|
||||
|
||||
```dot title="n-l-spec-convergence.dot"
|
||||
digraph NLSpecConvergence {
|
||||
```dot title="n-l-spec-conformance.dot"
|
||||
digraph NLSpecConformance {
|
||||
graph [
|
||||
goal="Implement a conformant system from a natural language specification",
|
||||
model_stylesheet="
|
||||
|
|
@ -36,7 +36,7 @@ digraph NLSpecConvergence {
|
|||
|
||||
// Phase 2: Build the initial implementation
|
||||
subgraph cluster_impl {
|
||||
label = "Implement & Converge"
|
||||
label = "Implement & Conform"
|
||||
node [thread_id="impl", fidelity="full"]
|
||||
|
||||
implement [label="Implement", class="impl", prompt="@prompts/implement.md"]
|
||||
|
|
@ -67,7 +67,7 @@ digraph NLSpecConvergence {
|
|||
```
|
||||
|
||||
```bash
|
||||
arc run start workflows/nlspec-convergence.dot
|
||||
arc run start workflows/nlspec-conformance.dot
|
||||
```
|
||||
|
||||
## How it works
|
||||
|
|
@ -91,7 +91,7 @@ Produce a step-by-step implementation plan in `plan.md` that covers:
|
|||
|
||||
The `implement` and `fix` nodes share a `thread_id="impl"`, so they accumulate context across loop iterations. When the agent returns to `fix` after a failed conformance run, it sees the full history of what it built and what broke. Combined with `fidelity="full"`, the agent retains the detail it needs to make targeted repairs.
|
||||
|
||||
### The convergence loop
|
||||
### The conformance loop
|
||||
|
||||
The core of this pattern is the test-fix loop:
|
||||
|
||||
|
|
@ -123,7 +123,7 @@ Do not rewrite working code. Make targeted fixes to the specific failures.
|
|||
|
||||
### Max visits as a safety valve
|
||||
|
||||
`max_visits=5` on the `fix` node prevents infinite loops. If the agent can't converge in 5 iterations, the workflow moves on with the best result so far. Tune this based on spec complexity: a 30-line spec might need 2 iterations, a 2,000-line spec might need 10.
|
||||
`max_visits=5` on the `fix` node prevents infinite loops. If the agent can't pass in 5 iterations, the workflow moves on with the best result so far. Tune this based on spec complexity: a 30-line spec might need 2 iterations, a 2,000-line spec might need 10.
|
||||
|
||||
### Goal gate on full conformance
|
||||
|
||||
|
|
@ -169,8 +169,8 @@ The pattern works for any spec that has automated verification: API contracts wi
|
|||
|
||||
## What you've learned
|
||||
|
||||
- The **convergence loop** (implement, test, fix, repeat) is the core pattern for spec-driven development
|
||||
- The **conformance loop** (implement, test, fix, repeat) is the core pattern for spec-driven development
|
||||
- **Two-tier conformance** (quick then full) keeps iteration fast
|
||||
- **Shared threads** (`thread_id`) give the fix node context from prior iterations
|
||||
- **`max_visits`** prevents infinite loops when the agent can't converge
|
||||
- **`max_visits`** prevents infinite loops when the agent can't pass
|
||||
- **`goal_gate`** makes conformance a hard requirement for workflow success
|
||||
|
|
@ -3,7 +3,7 @@
|
|||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 14.1.2 (20260124.0452)
|
||||
-->
|
||||
<!-- Title: NLSpecConvergence Pages: 1 -->
|
||||
<!-- Title: NLSpecConformance Pages: 1 -->
|
||||
<svg width="1145pt" height="132pt"
|
||||
viewBox="0.00 0.00 1145.00 132.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<style>
|
||||
|
|
@ -15,7 +15,7 @@
|
|||
}
|
||||
</style>
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 128.22)">
|
||||
<title>NLSpecConvergence</title>
|
||||
<title>NLSpecConformance</title>
|
||||
<!-- start -->
|
||||
<g id="node1" class="node">
|
||||
<title>start</title>
|
||||
|
Before Width: | Height: | Size: 8.3 KiB After Width: | Height: | Size: 8.3 KiB |
Loading…
Add table
Reference in a new issue