Skip to content

stephen94125/spec-fab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


spec-fab: Conflict-Driven Specifications

GitHub stars License: MIT 繁體中文


🛑 Stop chatting. Start merging.

Forces LLM integration directly into your Unix pipeline, treating architectural decisions as Git merge conflicts—requiring you, the human, to resolve them.


⭐️ GitHub newbie here. Your Star gives me enough motivation to skip dinner and code for 2 more hours.

Demo

⚡️ TL;DR

It's like spec-kit, but native to your Terminal.

# 1. Install
curl -sLf https://raw.githubusercontent.com/stephen9412/spec-fab/refs/heads/main/install.sh | sh

# 2. Init
mkdir my-project && cd my-project
spec_init

# 3. Constitution
spec_constitution "Principles: Rust, Clean Code, Zero-Cost Abstractions"

# 4. Drafting - Unleash the Power of Unix Pipes!
echo "Build a Tinder-like app for adopting cats" | spec_new
# 💥 Spec Conflicts! AI found ambiguities in your requirements. Open spec.md to resolve them.

# 5. Architecting
spec_plan
# 💥 Architecture Conflicts! AI provided different implementation strategies. Open plan.md to pick your tactics.

Why Choose spec-fab?

The Unix-Philosophy alternative to Spec-Kit.

We threw out all the bloated dependencies. ❌ No Ruby required ❌ No Node.js required ❌ No complex state machines

We kept only the essentials: ✅ Fish Shell (Flow Control) ✅ Fabric AI (The Brain) ✅ Vim / Your Editor (The Decision Maker)

  • ⚡️ Blazing Fast: It's just Shell Functions. It installs faster than you can type npm install.
  • 🧠 AI Native: Powered by Fabric for architectural brainstorming and review.
  • 📄 Pure Markdown: Your documentation is plain text. No hidden databases, no black magic.
  • 🤝 Spec-Kit Compatible: We adopt the best practices and prompt logic from GitHub's official spec-kit, but implemented for the command line.

🎭 Origin Story: A Lesson in Irony

"This is exactly why this project exists."

Ironically, when I was first developing SpecFab, I tried to use the "ultimate stack"—OpenCode + Claude 3.7 Sonnet—to run Spec-kit's official commands, just to generate a basic template for cross-validation.

The result? That "high-tech" combo kept erroring out, leaving me staring at my screen, questioning my life choices.

That was my epiphany: We shouldn't be wrestling with TUIs or debugging complex dependency trees just to capture a flash of inspiration. We need tools that are simpler, more brutal, and won't betray us.

And so, spec-fab was born.


🚀 Installation

One command. Upgrade your Terminal to an architect's arsenal in 30 seconds.

curl -sLf https://raw.githubusercontent.com/stephen9412/spec-fab/refs/heads/main/install.sh | sh

🧹 Uninstallation (The "Clean Break" Promise)

We respect your system hygiene (I'm a clean freak too). spec-fab is disciplined: all core files stay strictly within ~/.specfab.

If you decide to leave, we provide a spec_uninstall command (nuclear option) that wipes spec-fab and its shell hooks instantly.

Our "Do No Harm" Policy:

  • We won't delete your fish shell (it might be your default).
  • We won't delete ~/.config/fabric (you might have used Fabric before us, and we won't touch your API keys).

The Promise:

  1. Run spec_uninstall (Auto-clean).
  2. Or manually rm -rf ~/.specfab (Simple & brutal).
  3. Your shell config and AI keys remain 100% untouched.

🛠 Usage

1. Initialize (spec_init)

Don't let your project run naked.

spec_init
# ✅ Created Constitution: .specify/memory/constitution.md
# ✅ Created Spec Template: .specify/templates/spec-template.md
# ...
# 🚀 spec-fab environment ready.

2. Set Principles (spec_constitution)

Tell the AI your rules. Pipe in a doc or give a direct command.

# Pipe mode: Feed a draft
cat draft.md | spec_constitution

# Argument mode: Issue a supreme directive
spec_constitution "Create principles focused on code quality, testing standards, and Rust idioms."

3. Create Spec (spec_new)

Where the magic happens. Give it an idea; get a Git branch and a drafted spec.

cat prd.md | spec_new
# 📥 Reading description...
# 🏷  Slug generated: build-faceswap-pipeline
# 🌿 Git branch created: 1-build-faceswap-pipeline
# 🏗  Drafting Specification...
# 🔍 Refining Spec quality...
# ✅ Spec Created at: specs/1-build-faceswap-pipeline/spec.md

4. Generate Plan (spec_plan)

The AI Architect analyzes your spec and drafts a technical plan. If it finds uncertainty, it deliberately creates Git conflicts for you to resolve.

spec_plan
# 🚀 Generating Technical Plan...
# 🧠 Architecting solution...
# 💥 CONFLICTS DETECTED! The Architect presented options.
#    Please open the file and resolve the merge conflicts.
#    (You decide the architecture. Don't let AI hallucinate your system.)

🚧 Roadmap

The journey of SpecFab has just begun. We are working on the final pieces to bridge the gap from "Decision" to "Execution":

Command
spec_task
spec_checklist
spec_summarize_spec
spec_summarize_plan

Contributing

We welcome community contributions! SpecFab believes that "Small is Beautiful."

How You Can Help

  1. Optimize Patterns (patterns/): The AI's brain is in the Prompts. If you find better prompts for rigorous specs, submit a PR.
  2. Improve Fish Functions: We chase performance and readability. Better code is always welcome.
  3. Docs & Examples: Help us improve the README.

Development Principles

  • Keep Dependencies Minimal: Avoid heavy runtimes like Python, Node, or Ruby inside the core. We want to run on just fish, curl, git, and fabric.
  • Unix Philosophy: Functions should do one thing well and support Piping (|).
  • Note: We are open to adding tools like gum later for better UX (for visual learners or quick selections), but core functionality must remain pipe-friendly.

Steps

  1. Fork it.
  2. Create your branch (git checkout -b feature/AmazingFeature).
  3. Commit (Conventional Commits preferred).
  4. Push and Open PR.

Acknowledgments

  • Fabric: Thanks to Daniel Miessler for making AI in the terminal elegant. SpecFab wouldn't exist without this engine.
  • spec-kit: Thanks to the GitHub team. Their methodology and prompt logic inspired the core of SpecFab. We stand on the shoulders of giants to bring this philosophy to the CLI.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages