Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
45df9b8
chore: remove mcp.json from version control
Nov 5, 2025
9b80386
fix: correct test paths for new .specfact structure
Nov 5, 2025
3d90710
fix: update .gitignore
Nov 5, 2025
8eaaf55
fix: correct pre-merge check to only flag root-level temporary files
Nov 5, 2025
e4d4082
fix: add conftest.py to fix tools imports in tests
Nov 5, 2025
724cfa8
fix: install specfact-cli from local source in specfact-gate workflow
Nov 5, 2025
32b454d
refactor: combine hatch installation and CLI setup steps
Nov 5, 2025
04f9248
fix: make repro main command the default callback
Nov 5, 2025
9c66d8c
fix: remove invalid -k filter from Python 3.11 compatibility tests
Nov 5, 2025
39aad82
fix: sync __version__ with pyproject.toml (0.4.0)
Nov 5, 2025
1de7648
fix: exclude tests, docs, tools from PyPI package
Nov 5, 2025
b9abff7
docs: fix uvx command syntax in all documentation
Nov 5, 2025
59382c7
Merge branch 'main' into dev
djm81 Nov 5, 2025
00ea545
fix: Contract test directory handling and GitHub Pages legal files (#3)
djm81 Nov 5, 2025
603f8fe
fix: resolve merge conflict in __init__.py
Nov 5, 2025
3206c60
feat: dynamic CrossHair detection, GitHub Action integration, and enf…
djm81 Nov 6, 2025
72b380d
feat: Watch mode and documentation reorganization (v0.5.0) (#6)
djm81 Nov 9, 2025
d7362eb
Merge main into dev: Resolve conflicts for v0.5.0 release
Nov 9, 2025
2997920
Update to repositioning for brownfield first strategy
Nov 15, 2025
4a9de41
Switch to Apache 2 license
Nov 15, 2025
b152211
Fix test failurs
Nov 15, 2025
ec877d0
Merge main into dev: Resolve conflicts keeping brownfield-first posit…
Nov 15, 2025
39ccd4c
Fix tests and linter conflicts
Nov 15, 2025
2f3ba7e
Fix github pages setup
Nov 15, 2025
283379d
Fix pages setup
Nov 15, 2025
d7124bb
Fix pages setup
Nov 16, 2025
4d6e643
fix: remove container build job (no Dockerfile)
Nov 16, 2025
3d9ac5d
fix: resolve merge conflicts in docs/index.md
Nov 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 0 additions & 61 deletions .github/workflows/pr-orchestrator.yml
Original file line number Diff line number Diff line change
Expand Up @@ -344,64 +344,3 @@ jobs:
fi
} >> "$GITHUB_STEP_SUMMARY"

build-and-push-container:
name: Build and Push Container
runs-on: ubuntu-latest
needs: [package-validation]
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
permissions:
contents: read
packages: write
id-token: write
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Compute tags
id: vars
run: |
COMMIT_SHA="${{ github.sha }}"
SHORT_SHA="${COMMIT_SHA:0:8}"
TIMESTAMP=$(date -u +%Y%m%d-%H%M%S)
VERSION_TAG="$SHORT_SHA-$TIMESTAMP"

{
printf 'SHORT_SHA=%s\n' "$SHORT_SHA"
printf 'VERSION_TAG=%s\n' "$VERSION_TAG"
} >> "$GITHUB_ENV"

- name: Log in to ghcr.io
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build & Push specfact-cli
uses: docker/build-push-action@v6
with:
context: .
file: ./dockerfile
push: true
tags: |
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.VERSION_TAG }}

- name: Summary
if: always()
run: |
{
echo "## Container Build Summary"
echo "| Parameter | Value |"
echo "|-----------|--------|"
echo "| Branch | main |"
echo "| Version Tag | $VERSION_TAG |"
echo "| Image | \`${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest\` |"
echo "| Tagged | \`${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:$VERSION_TAG\` |"
} >> "$GITHUB_STEP_SUMMARY"
39 changes: 24 additions & 15 deletions _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@

title: SpecFact CLI Documentation
description: >-
Complete documentation for SpecFact CLI - Spec→Contract→Sentinel tool for contract-driven development.
baseurl: "" # Set to "/specfact-cli" if using project pages, "" for user/organization pages
url: "https://nold-ai.github.io" # Set to your GitHub Pages domain
Complete documentation for SpecFact CLI - Brownfield-first CLI: Reverse engineer legacy Python → specs → enforced contracts.
baseurl: "/specfact-cli" # Project pages require baseurl
url: "https://nold-ai.github.io" # GitHub Pages domain

# Build settings
markdown: kramdown
Expand Down Expand Up @@ -51,26 +51,35 @@ defaults:
values:
layout: default
permalink: /:basename/
- scope:
path: "getting-started"
values:
layout: default
- scope:
path: "guides"
values:
layout: default
- scope:
path: "reference"
values:
layout: default
- scope:
path: "examples"
values:
layout: default

# Theme settings (using minimal theme for clean look)
theme: minima
minima:
social:
github: nold-ai/specfact-cli
github:
username: nold-ai
repository: specfact-cli
author:
name: NOLD AI
email: [email protected]

# Navigation
navigation:
- title: Getting Started
url: /getting-started/
- title: Guides
url: /guides/
- title: Reference
url: /reference/
- title: Examples
url: /examples/
skin: dark # or light, auto
show_excerpts: true

# Footer
footer:
Expand Down
47 changes: 21 additions & 26 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -1,61 +1,56 @@
---
layout: default
title: SpecFact CLI Documentation
description: Everything you need to know about using SpecFact CLI
description: Brownfield-first CLI for reverse engineering legacy Python code into specs with runtime contract enforcement
---

> **Everything you need to know about using SpecFact CLI**
# SpecFact CLI Documentation

**Brownfield-first CLI: Reverse engineer legacy Python → specs → enforced contracts**

SpecFact CLI helps you modernize legacy codebases by automatically extracting specifications from existing code and enforcing them at runtime to prevent regressions.

---

## 📚 Documentation
## 🚀 Quick Start

### New to SpecFact CLI?

**Primary Use Case**: Modernizing legacy Python codebases

Start here:

1. **[Getting Started](getting-started/README.md)** - Install and run your first command
2. **[Modernizing Legacy Code?](guides/brownfield-engineer.md)** ⭐ **PRIMARY** - Brownfield-first guide
3. **[The Brownfield Journey](guides/brownfield-journey.md)** ⭐ - Complete modernization workflow
4. **[Use Cases](guides/use-cases.md)** - See real-world examples
5. **[Command Reference](reference/commands.md)** - Learn all available commands
1. **[Installation](getting-started/installation.md)** - Get started in 60 seconds
2. **[First Steps](getting-started/first-steps.md)** - Run your first command
3. **[Modernizing Legacy Code](guides/brownfield-engineer.md)** ⭐ **PRIMARY** - Brownfield-first guide
4. **[The Brownfield Journey](guides/brownfield-journey.md)** ⭐ - Complete modernization workflow

### Using GitHub Spec-Kit?

**Secondary Use Case**: SpecFact CLI complements Spec-Kit by adding automated enforcement to Spec-Kit's interactive authoring:
**Secondary Use Case**: Add automated enforcement to your Spec-Kit projects

- **[The Journey: From Spec-Kit to SpecFact](guides/speckit-journey.md)** - Add automated enforcement to your Spec-Kit projects
- **[From Spec-Kit to SpecFact](guides/speckit-journey.md)** - Add enforcement to Spec-Kit projects
- **[Spec-Kit Comparison](guides/speckit-comparison.md)** - Understand when to use each tool

## 📚 Documentation

### Guides

- **[Use Cases](guides/use-cases.md)** - Real-world scenarios and workflows
- **[IDE Integration](guides/ide-integration.md)** - Set up slash commands in your IDE
- **[CoPilot Mode](guides/copilot-mode.md)** - Using `--mode copilot` on CLI
- **[Use Cases](guides/use-cases.md)** - Real-world scenarios
- **[Troubleshooting](guides/troubleshooting.md)** - Common issues and solutions
- **[Competitive Analysis](guides/competitive-analysis.md)** - How SpecFact compares

### Reference Documentation
### Reference

- **[Command Reference](reference/commands.md)** - Complete command documentation
- **[Architecture](reference/architecture.md)** - Technical design and principles
- **[Operational Modes](reference/modes.md)** - CI/CD vs CoPilot modes
- **[Directory Structure](reference/directory-structure.md)** - Project structure

---

## 🚀 Quick Links

### Common Tasks
### Examples

- **[Install SpecFact CLI](getting-started/installation.md)**
- **[Modernize Legacy Code](guides/brownfield-engineer.md)** ⭐ **PRIMARY** - Reverse engineer existing code into specs
- **[The Brownfield Journey](guides/brownfield-journey.md)** ⭐ - Complete modernization workflow
- **[Set Up IDE Integration](guides/ide-integration.md)** - Initialize slash commands in your IDE
- **[Analyze existing code](guides/use-cases.md#use-case-1-brownfield-code-modernization)** ⭐ **PRIMARY**
- **[Add enforcement to Spec-Kit projects](guides/use-cases.md#use-case-2-github-spec-kit-migration)** - Secondary use case
- **[Start a new project](guides/use-cases.md#use-case-3-greenfield-spec-first-development)** - Alternative workflow
- **[Brownfield Examples](examples/)** - Real-world modernization examples
- **[Quick Examples](examples/quick-examples.md)** - Code snippets and patterns

---

Expand Down
Loading