Conduct AI
Spec-Driven Development Β· SDD

AI writes code fast. Too fast.

Without a spec, AI coding tools drift. Requirements get lost. Nobody can trace which code maps to which decision. SDD gives every AI action aΒ why β€” and Conduct enforces it automatically.

No account needed to generate a spec.

The problem

AI coding tools write code.
They don't know why.

The faster AI writes, the faster requirements drift. By the time you notice, the code doesn't match the intent β€” and there's no audit trail to explain what happened.

β‡Œ

AI drift

The AI interprets your prompt, not your requirements. Each session it starts fresh β€” no memory of what FR-001 actually meant last week.

βˆ…

No traceability

Which lines of code map to which decision? Nobody knows. A refactor breaks something β€” but nothing links the broken code back to a requirement.

⚠

Compliance gap

SOC 2, ISO 27001, and internal audits ask: how do you know your software does what it's supposed to? You can't answer that without a spec.

The principle

SPEC.md is the contract.

Every requirement gets a number. Every line of code traces back to one. The spec lives in your repo β€” git-versioned, human-readable, owned by your team. Conduct never owns your spec. It just enforces it.

SPEC.md

# Project Spec Β· v1.0

## Functional Requirements

FR-001 User can log in with SSO

Acceptance: SSO flow completes in <3s Β· session expires after 8h

FR-002 Session expires after 8 hours of inactivity

Acceptance: idle session redirects to login Β· active session unaffected

FR-003 Admin can revoke any active session

Acceptance: revoked session logs out within 60s Β· audit log records action

## Non-Functional Requirements

NFR-001 API response time <200ms at p99

...

Atomic

One behaviour per requirement

Testable

Clear pass/fail acceptance criteria

Traceable

PR can reference it unambiguously

The workflow

From idea to shipped code β€” with full traceability.

Six playbooks. One continuous workflow. Each step feeds the next.

β—ˆ
sdd-spec-genFree Β· No login

Describe β†’ SPEC.md

Paste a description, Notion doc, Confluence page, or GitHub Epic. The agent asks 2–3 targeted questions to fill gaps, then writes a structured SPEC.md with numbered, testable FR-xxx requirements.

⬑
sdd-bootstrapRequires account

SPEC.md β†’ Full repo scaffold

Reads your SPEC.md and commits 6 files in one push: AGENTS.md, DESIGN.md, PLAN.md, SPRINT.md, CLAUDE.md, and .conduct/spec-index.json β€” the machine-readable FR index that powers everything downstream.

⟁
sdd-featurePer feature

FR β†’ failing tests β†’ code β†’ PR

For each feature: reads the relevant FRs, writes failing tests first, writes code that makes them pass, runs a spec gate (every changed line must trace to a FR), then opens a PR with a spec compliance summary.

β—Ž
sdd-spec-to-issuesGitHub Β· Jira Β· Linear

FR list β†’ Epics + Stories

Pushes every FR as a Story under the right Epic into your tracker. FR numbers become the connective tissue: the same number appears in SPEC.md, the Jira ticket, the test comment, the commit, and the PR title.

βŠ™
sdd-spec-indexOn every push

Keep spec-index.json in sync

Runs automatically on every push. Regenerates the machine-readable FR index when SPEC.md changes. Keeps tracker issue URLs, status, and file mappings current without manual intervention.

≋
sdd-drift-checkWeekly

Surface untraced code + unimplemented FRs

Weekly scan: finds source files with no FR reference and FRs with no code yet. Surfaces both as a Slack report. The spec and the codebase stay honest.

Try it free

Generate your SPEC.md.

No account needed. Describe what you're building β€” get a structured spec in ~20 seconds.

1
β†’
2
β†’
3

Notion, Confluence, GitHub Epic β€” agent extracts and normalises

The moat

The only platform where AI can't ship
code that isn't in the spec.

Notion stores requirements. Jira tracks tickets. Linear manages sprints. None of them prevent AI from writing code with no requirement behind it. Conduct does β€” at the git hook level.

Without Conduct

# git push β€” no checks

modified: src/auth/session.ts

modified: src/auth/sso.ts

βœ“ pushed to main

# No one knows which requirement

# these files implement

With Conduct SDD

# git push β€” hook runs

modified: src/auth/session.ts

βœ— no FR reference found

hint: add [FR-002] to commit msg

# Add FR reference, push again

modified: src/auth/session.ts

βœ“ FR-002 Β· FR-003 verified

βœ“ pushed to main

The pre-merge hook lives in .conduct/hooks/pre-merge β€” git-native, no external service required to enforce. If a team leaves Conduct, their spec and traceability data stay in the repo.

Tracker sync

FR numbers connect everything.

One number traces a requirement from SPEC.md through Jira, the test file, the commit, and the PR. Sync with GitHub, Jira, or Linear β€” bidirectionally.

FR-001 traces through your entire stack

# SPEC.md

FR-001 User can log in with SSO

# Jira / Linear / GH

[FR-001] User can log in with SSO

# Test file

# FR-001 def test_sso_login():

# Git commit

feat(auth): SSO login [FR-001]

# PR title

feat(auth): SSO [FR-001] closes #42

# SPRINT.md

FR-001 β†’ done (merged Jun 8)

GitHub IssuesAvailable now
JiraPhase 2
LinearPhase 2

Common question

Why not just ask Claude or ChatGPT?

You can. But you get a markdown blob in a chat window.

Claude / ChatGPT

  • βœ•Spec lives in a chat thread
  • βœ•No FR numbers β€” just prose
  • βœ•Nothing enforced at commit time
  • βœ•Disconnected from your repo and tickets
  • βœ•Agents ignore it the next day

Conduct SDD

  • βœ“SPEC.md committed to git β€” versioned forever
  • βœ“FR-xxx numbers in every commit, PR, and test
  • βœ“Pre-commit hook blocks unlinked code
  • βœ“One command syncs FRs to Jira / Linear / GitHub
  • βœ“AGENTS.md makes every AI agent spec-aware

Chat β†’ markdown.Β Β Conduct β†’ enforced architecture.

Why not just use Notion?

Storing requirements isn't enforcing them.

Notion / Confluence / Jira

Conduct SDD

Write structured requirements

Manual

Generated + quality-checked

Requirements in version control

No

Yes β€” SPEC.md in git

FR numbers in code

Convention only

Enforced by hook

Block PR with no spec reference

No

Yes

Sync FRs to Jira / Linear

Manual copy-paste

Automated bidirectional

Detect spec drift weekly

No

Yes β€” sdd-drift-check

AI agents respect requirements

No

Yes β€” AGENTS.md + gate

Get started

Start with a spec. Ship with confidence.

Generate your SPEC.md free β€” no account needed. Then run the full SDD workflow inside Conduct to scaffold, enforce, and ship spec-compliant code.

Conduct AI β€” Governed AI Automations for Engineering Teams