
Most SA teams today are chat-driven: discuss in Chatgpt, copy-paste to Docs, manually sync to Jira.
Onesist flips it: artifact-driven. All artifacts live as files in one folder, versioned in Git, and AI works on top of those files.
Files are the truth. UI is just a viewer. Chat is a tool, not a home.
You don't need to install Onesist to start. Just create this folder structure in your project in the same repo developers use:
<project-root>/
├── input/
│ ├── fsd/ # Raw FSD (PDF, DOCX, MD) — source of truth
│ └── figma/ # Design screenshots / mockups
└── output/
├── spec/ # API Spec (.md + openapi.yaml)
├── erd/ # DBML schema (.dbml)
├── task/ # Task cards per phase (<phase>/<task>.md)
├── sit/ # Test cases (.md)
├── sketches/ # Excalidraw (.excalidraw.json)
├── docs/ # Technical Docs (.docx / .md)
└── timeline.html # Gantt chartThis is the convention Onesist uses (AGENTS.md:131 + docs/README.md:13).
Why it matters:
In onesist the workflow isn't button clicks it's prompts to the agent CLI in the emmbedded terminal. UI buttons are considered experomental; prompts are the way.
| Phase | Prompt (via agent CLI) | Input -> Output |
|---|---|---|
| 1. FSD -> Markdown | convert PDF in input/fsd/ to markdown using markitdown skill | input/fsd/*.pdf -> input/fsd/*.md |
| 2. Split FD | split FSD into FD1, FD2, FD3 per module/feature | input/fsd/FSD.md -> input/fsd/FD1-*md, FD2-*.md |
| 3. Discovery | discovery mode: discuss business requirements from FD1..FDn | Ask QUESTION_FOR_BA / ASSUMPTION until aligned |
Each phase ends with review + finalization with the agent. Not final? Regenerate. Final? Move on. See full prompts in docs/en/08-prompt-library.md and best pratices in docs/en/09-best-pratices.md.
Key: Agent doesn't guess. It's validated with fsd-analyzer skill (validate_erd.py, validate_spec.py, compare_artifacts.py) + completeness checklist (lib/fsd-completeness.ts) whether User Journey, Edge Cases, Security are covered. Gaps like [GAP] FSD mentions refund but no refunds table are caught before coding starts.
After adopting this playbook (with or without Onesist):
Most valuable: SAs get time back to think does this flow handle race conditions? Are permissions correct? not to move data between tabs.
git clone https://github.com/rogasper/onesist
cd onesist
bun install
bun run dev # http://localhost:4321
# Open Project → select folder with input/ & output/
# Open embedded terminal → run same prompts → see ERD/Spec/Tasks renderedDesktop: bunx tauri dev (requires Rust).
Full docs: docs/README.md 10 bilingual guides + prompt library + best pratices.



| 4. ERD |
| generate ERD DBML from FD1..FDn |
| FD*.md -> output/erd/schema.dbml -> review in ERD Studio |
| 5. API Spec | generate Spec + openapi.yaml from FD + ERD | FD + DBML -> output/spec/*.md + openapi.yaml |
| 6. Tasks & Timeline | generate Task Cards + estimation + timeline from ERD + Spec | ERD + Spec -> output/task/<phase>/*.md + timeline.html |
| 7. Technical Docs | generate SRS from all artifacts | All artifacts -> output/docs/*.docx |