惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
T
ThreatConnect
SecWiki News
SecWiki News
F
Future of Privacy Forum
AWS News Blog
AWS News Blog
C
Cisco Blogs
A
Arctic Wolf
Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
Scott Helme
Scott Helme
V
V2EX
博客园 - 叶小钗
阮一峰的网络日志
阮一峰的网络日志
K
Kaspersky official blog
G
Google Developers Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
P
Privacy International News Feed
C
Cyber Attacks, Cyber Crime and Cyber Security
N
News | PayPal Newsroom
Schneier on Security
Schneier on Security
NISL@THU
NISL@THU
Microsoft Azure Blog
Microsoft Azure Blog
量子位
The Hacker News
The Hacker News
Stack Overflow Blog
Stack Overflow Blog
Security Latest
Security Latest
M
Microsoft Research Blog - Microsoft Research
Google Online Security Blog
Google Online Security Blog
博客园_首页
C
CXSECURITY Database RSS Feed - CXSecurity.com
I
InfoQ
Google DeepMind News
Google DeepMind News
Y
Y Combinator Blog
The Cloudflare Blog
Microsoft Security Blog
Microsoft Security Blog
Martin Fowler
Martin Fowler
Cisco Talos Blog
Cisco Talos Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Troy Hunt's Blog
F
Fox-IT International blog
S
Security @ Cisco Blogs
博客园 - 司徒正美
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
C
Comments on: Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
L
LINUX DO - 最新话题
GbyAI
GbyAI
Project Zero
Project Zero
腾讯CDC
T
Tailwind CSS Blog

DEV Community

Resume Building using HTML & CSS Running ASR for smart homes in the NPU of Intel processors SpecFlow: SDD multi-agente en Cursor (4 fases, /approve, un solo escritor de código) Adobe Commerce Cloud now costs $40k/year. We migrated from Adobe Commerce to Magento Open Source — here's the honest breakdown We Trust Third Party Code, It’s Time to Trust AI Generated Code LangGraph 워크플로우 템플릿 (v38) Sustainable AI Starts with Efficient AI Find Remove duplicated files in Google Drive How to Detect GPU Waste in a Kubernetes Cluster The Privacy Bug in My First Chrome Extension (And How to Avoid It) Serverless Mental Models: What They Don't Tell You Before You Build Preventing GPT hallucination in automated content pipelines: how I structure Make.com flows with data injection Hmm, where were we? AI Visibility Tools, Math Proofs, and Stripped Guardrails Shape Developer Landscape How AI and Electronics Are Changing Healthcare Devices: The Future of Smart Healthcare Author: Shivam Wakade | Founder, PrivSR Making Claude Sound Like Optimus Prime Understanding Reinforcement Learning with Human Feedback Part 5: Training the Reward Model with Loss Functions Learning Progress Pt.20 How Secure LoRa Communication Devices Work: Building the Future of Private and Long-Range Connectivity Author: Shivam Wakade | Founder, PrivSR How I Rebuilt an RPG Map Editor with Rust, React, and WASM Building a System That Automates YouTube Post-Production Building a 100% Serverless Digital Asset Packager in the Browser Game Recommended AI What is Human-In-The-Loop (HITL)? Deep Dive: React Server Components in TanStack Start Migrating off Google Analytics: Umami vs Plausible vs Fathom Building a Portfolio That Actually Demonstrates Software Engineering Async/Await in JavaScript: From Callbacks to Clean Code (2026) Benchmarking LLM Structured Outputs Angular 21 Multiselect Dropdown: A Migration-Friendly Component with Live Functional Tests ShareBox v5 — GPU transcoding, Netflix-style grid, and why I don't need Plex anymore TOML Schema is live Handling Duplicate Shopify Webhook Events (And Why You Must) Original Kubernetes Dashboard — retired upstream, upgraded to Angular 21. لماذا أسست ترينافو للتجار العرب الذين تتجاهلهم المنصات الغربية Construyendo un recomendador de películas en Python: de los datos al modelo When APIs Lie: A Lesson in Defensive Debugging Pope Leo XIV's AI Encyclical: What Builders Must Know (2026) Donna v0.3.0 HTB — MonitorsFour | Writeup The Free Tool You Trust Is the One You Should Fear the Most HTB — MonitorsFour | Writeup Fr 97. Embeddings and Vector Search: Semantic Search That Works Deep Dive: Building "Gravity Paint" - A Tactile Physics Instrument with React, Matter.js, and p5.js ABAP Unit Testing with Test Doubles and Mocking Frameworks: A Senior Architects Guide to Isolating Dependencies in SAP S/4HANA LeetCode Solution: 5. Longest Palindromic Substring kovax-react 0.8: Tailwind v4 preset, FormField adapters, ColorModeScript, and Storybook I built an AI résumé tool that refuses to lie about your experience The hat Azure Entra ID User & Role Management — Step-by-Step Practical Guide With A Simple Excercise The AI-Native Company: How a Single Founder Can Build Global Organizations Powered by AWS and an Ecosystem of Artificial Intelligences Building a Lightweight Remote MCP Knowledge Base on Cloudflare Workers Why I built Trinavo for the MENA merchants Western platforms ignore The N+1 Query That Killed Our Database, And How I Fixed It Docstrings vs Markdown Docs: What Should Developers Actually Write? Training Data Provenance: The Manifest Diff That Explains the Hash Add SVGIcons MCP to Claude Code and Find SVG Icons from Your Terminal 3 CLI Tools You Can Buy with Crypto — No KYC, No Subscriptions COSS Weekly: OpenClaw competitor NanoClaw Raises $12M, Dust Raises $40M, Sonar Acquires Gitar, and more How to know if you actually need mobile proxies (without buying any) Building Cursor for Community: A Buildathon Built on Time Pressure How we built a PII masking layer for LLM APIs — local detection, reversible tokens, one line to integrate Why MLFQ Was Way Ahead of Its Time Add Runtime Limits to Claude Agent Workflows I Built a Prompt Injection Detector with 98% Recall on Unseen Attacks. Here's Why Data Beat Architecture. 8 Vite Config Options Every Developer Should Know (Vite 8) Feature Flags That Forgot to Leave Why Trust Infrastructure Is Becoming the Hidden Layer of Donation Platforms XyPriss: Rethinking Core Performance and Zero-Trust Architecture in Modern Backends Designing Configuration for Scalable Treasure Hunts SSH Login Delays: The 10-Second Wait That Drives Us Crazy Building Production Multi-Agent Workflows in n8n: What 50 Deployments Taught Us A 3-layer memory system that gives Claude Code persistent context across sessions. Trishul SNMP Suite 2.0.1: Better MIBs, Traps, and SNMP Labs How I built a production AI SaaS as a solo developer Auto-labelling 1.2M robotics frames with VLMs: a failover story India’s Laws Were Not Built for AI — And Courts Are Filling the Gap skill-insp: A Skill That Scores Other Skills Clprolf Minimalist Messaging in the Age of AI What's actually in a good .cursorrules file? I built 10 of them — here's what I learned Building Strong Python Basics – Loops, Functions and Logic How to Choose the Right Tech Stack for Your Project I built a free multi-tab JSON editor — here's what I learned HTTP Headers Every Developer Should Know (2026) Building Cross-Platform Digital Products: Challenges and Best Practices Data Privacy in the Age of AI: How Product Teams Can Build Trust with Users What Would WordPress Look Like If It Were Designed Today? Why Backup Success Does Not Mean Database Recoverability Local AI Office Assistant That Never Sends Your Documents to the Cloud Building TaskForge: Translating Enterprise Chaos into an Open-Source Scheduler Tesla P40 in a Homelab: 24GB of Inference on a Budget Llama 4: Meta's Latest — Scout, Maverick, and the MoE Revolution George Hotz called AI code 'slop.' He's half right. Como Construir um Fluxo de Trabalho Baseado em Engenharia de Prompt e Automação We Audited Our Agent Tool-Call Traces. Half Our Eval Data Was Garbage. The Hidden Cost of Downtime: How SRE Error Budgets Protect National Economic Infrastructure Getting started with openHUMANS can be an exciting venture for developers looking to create innovative applications in the realm of human-ce Stack Overflow: A Powerful Community for Developers and Learners From Language Models to Humanoid Minds ✨
SpecFlow: Multi-Agent SDD in Cursor (4 phases, /approve, single code writer)
Matías Espin · 2026-05-26 · via DEV Community

SpecFlow: Multi-Agent SDD in Cursor (4 phases, /approve, single code writer)

SpecFlow is a CLI that installs Spec-Driven Development (SDD) in your repository: four phase agents, markdown specs, and only Implementer may edit source code. It still looks like Cursor chat — you turn on flow when the feature warrants it.

@ceatoleii/specflow · Pipeline: Requirement → Plan → Tasks → Code → Review

npx @ceatoleii/specflow init

Enter fullscreen mode Exit fullscreen mode

Full guide: ceatoleii.github.io/specflow


What problem it solves

Symptom SpecFlow mechanism
Vague ask → huge diff Refinertask.md with AC1, AC2
Code before design agreement SDD waits for /approve
Multiple “agents” touching src/ Only Implementer writes source
“Done” without evidence Reviewerreview.md per AC

Pipeline: Requirement → Plan → Tasks → Code → Review

flowchart LR
  R[Refining<br/>task.md] --> D[Designing<br/>plan.md + tasks.md]
  D -->|/approve| I[Implementing<br/>src/]
  I --> V[Reviewing<br/>review.md]
  V -->|PASS| A[history/ + flow off]
  V -->|FAIL| I

Enter fullscreen mode Exit fullscreen mode


Architecture in 60 seconds

Phase (phase.md) Agent Writes code? Output
refining Refiner No task.md
designing SDD No plan.md, tasks.md
implementing Implementer Yes Code + tasks.md
reviewing Reviewer No review.md

Direct mode vs flow mode

Direct mode Flow mode
Signal No .agents-state/.flow-enabled File present
Start new task, flow on
Stop flow off, direct mode phrases
Use for Typos, spikes, exploration Features with clear ACs

Install (2 minutes)

Requirements: Node.js ≥ 18, interactive terminal, project root.

npx @ceatoleii/specflow init
specflow doctor

Enter fullscreen mode Exit fullscreen mode

Add to .gitignore:

.agents-state/

Enter fullscreen mode Exit fullscreen mode

What init installs

Path Maintained by Notes
AGENTS.md SpecFlow (init / sync) Universal entry for IDEs
.agents/ SpecFlow Phase rules — do not edit
.agents-docs/ You Stack, conventions, verification.md
.agents-state/ Runtime Per-task state — gitignore
.cursor/rules/_specflow.mdc SpecFlow Cursor adapter (default v2.2+)
.specflow-linear.json Optional Linear sync via Cursor MCP

Golden rule: fill .agents-docs/ before serious tasks — agents read it every flow.


Walkthrough: rate limiting on /api/search

Example feature:

Max 100 req/min per IP, HTTP 429 with standard JSON, existing tests stay green.

1. Start flow

In Cursor chat:

new task

Enter fullscreen mode Exit fullscreen mode

Also: flow on, or new task from LIN-123 (Linear + MCP).

Verify:

specflow doctor
# Expect .flow-enabled and phase.md = refining

Enter fullscreen mode Exit fullscreen mode

2. Refining → task.md

Refiner asks questions; you answer. Typical output:

# Task: Rate limit /api/search

## Goal
Limit anonymous traffic to /api/search without breaking current behavior.

## Acceptance Criteria

- **AC1:** >100 requests/min from same IP → HTTP 429
- **AC2:** Body `{ "error": "rate_limit_exceeded", "retryAfter": <number> }`
- **AC3:** Existing search endpoint tests pass unchanged

## Constraints

- Reuse existing error middleware patterns if present
- No new env vars without team approval

## Out of Scope

- Per-API-key quotas
- Admin dashboard for limits

Enter fullscreen mode Exit fullscreen mode

You review ACs and Out of Scope — reply in chat to fix; no need to hand-edit the file.

3. Designing → plan.md + tasks.md

SDD proposes design. Sample tasks.md (TDD order):

## Tasks

- [ ] [test] Add integration test: 101 requests in 60s → 429 (AC1)
- [ ] [test] Assert JSON body shape matches AC2
- [ ] [impl] Create rateLimit middleware (in-memory store, 100/min)
- [ ] [impl] Wire middleware on /api/search route only
- [ ] [impl] Run full search test suite (AC3)

Enter fullscreen mode Exit fullscreen mode

Read plan.md (files, approach). If the plan sneaks in unrequested refactors, ask for changes before approve.

4. /approve gate

/approve

Enter fullscreen mode Exit fullscreen mode

Also valid: approved, go ahead (locale-dependent phrases in rules).

  • Phase → implementing
  • Only now may Implementer touch src/
  • With Linear enabled: issue → In Progress (via Cursor MCP)

5. Implementing

Watch:

  • tasks.md[ ][~][x]
  • git diff — must match plan.md

On spec gaps, answer in chat — Implementer should not guess.

6. Reviewing → review.md

Reviewer runs .agents-docs/verification.md (e.g. npm test, npm run lint).

Sample review.md:

# Review: Rate limit /api/search

## Acceptance Criteria

| AC | Evidence | Status |
|----|----------|--------|
| AC1 | `rate-limit.test.ts` — 101 req → 429 | PASS |
| AC2 | Snapshot `error` + `retryAfter` fields | PASS |
| AC3 | `npm test -- search` — 0 failures | PASS |

## Verification

- `npm test` — exit 0
- `npm run lint` — exit 0

## Decision

**PASS** — archived to history/, flow disabled.

Enter fullscreen mode Exit fullscreen mode

Outcome What happens
PASS history/YYYY-MM-DD-slug/, flow off
FAIL Back to Implementer with concrete fixes

Five design principles

  1. Spec before code — No /approve, no implementation.
  2. One writer — Only Implementer in src/, lib/, etc.
  3. Explicit statephase.md, task.md, plan.md under .agents-state/current/.
  4. Portable rules.agents/ via sync; project facts in .agents-docs/ (never overwritten by sync).
  5. Zero overhead by default — Without an active task, assistant behaves normally.

Commands you’ll actually use

Command When
specflow init First install
specflow doctor Verify files and phase
specflow doctor --run + run verification.md
specflow status Version, Linear on/off, updates
specflow sync Update engine and adapters
specflow linear setup Enable Linear sync (MCP)
specflow status
specflow sync

Enter fullscreen mode Exit fullscreen mode


Linear + Cursor MCP (optional)

  • Config: specflow linear setup or wizard during init
  • No API keys in the CLI — the Cursor agent uses the Linear MCP plugin
  • Default state mapping:
SpecFlow event Linear state
Refining complete Todo
/approve In Progress
Review PASS Done

Details: Linear Integration


When to skip SpecFlow

Use flow Skip (direct mode)
Feature with ACs and scope One-line fix
You want to read plan before diff Spec already signed elsewhere
Team shares .agents/ rules Fully ad-hoc spike

Team workflow

Commit: AGENTS.md, .agents/, .agents-docs/, adapters, .specflow-version

Do not commit: .agents-state/

npx @ceatoleii/specflow sync   # updates engine; keeps .agents-docs/

Enter fullscreen mode Exit fullscreen mode


Quick troubleshooting

Issue First step
Assistant ignores phases Is .flow-enabled present? specflow doctor
Code without plan Did you /approve? Check phase.md
Review fails tests Fill .agents-docs/verification.md

More: Troubleshooting


Wrap-up

  • Install rules and templates with npx @ceatoleii/specflow init
  • Start with new task when the contract matters
  • Approve design with /approve before the diff
  • One agent writes code; Reviewer closes with per-AC evidence

Links


What feature would you run through /approve first? 👇