Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
337 changes: 87 additions & 250 deletions README.md

Large diffs are not rendered by default.

70 changes: 70 additions & 0 deletions docs/_support/readme-first-contact/capture-readme-output.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
#!/usr/bin/env bash

set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd)"

CLI_VERSION="${CLI_VERSION:-0.45.1}"
REPO_SLUG="${REPO_SLUG:-nold-ai/specfact-demo-repo}"
CAPTURE_REF="${CAPTURE_REF:-${CAPTURE_COMMIT:-2b5ba8cd57d16c1a1f24463a297fdb28fbede123}}"
WORK_DIR="${WORK_DIR:-/tmp/specfact-demo-repo}"
CAPTURE_HOME="${CAPTURE_HOME:-/tmp/specfact-readme-capture-home}"
OUTPUT_DIR="${OUTPUT_DIR:-$REPO_ROOT/docs/_support/readme-first-contact/sample-output}"
RAW_OUTPUT_PATH="${RAW_OUTPUT_PATH:-$OUTPUT_DIR/review-output.txt}"
SUMMARY_PATH="${SUMMARY_PATH:-$OUTPUT_DIR/capture-metadata.txt}"
INIT_OUTPUT_PATH="${INIT_OUTPUT_PATH:-$OUTPUT_DIR/init-output.txt}"

mkdir -p "$OUTPUT_DIR"
rm -rf "$CAPTURE_HOME"
mkdir -p "$CAPTURE_HOME"

if [[ ! -d "$WORK_DIR/.git" ]]; then
rm -rf "$WORK_DIR"
gh repo clone "$REPO_SLUG" "$WORK_DIR"
fi
Comment thread
djm81 marked this conversation as resolved.
Comment thread
djm81 marked this conversation as resolved.

git -C "$WORK_DIR" fetch --all --tags --prune
git -C "$WORK_DIR" checkout --force "$CAPTURE_REF"
git -C "$WORK_DIR" reset --hard "$CAPTURE_REF"

export HOME="$CAPTURE_HOME"

uvx --from "specfact-cli==$CLI_VERSION" specfact init --profile solo-developer \
>"$INIT_OUTPUT_PATH" 2>&1

pushd "$WORK_DIR" >/dev/null
uvx \
--from "specfact-cli==$CLI_VERSION" \
--with ruff \
--with radon \
--with semgrep \
--with basedpyright \
--with pylint \
--with crosshair-tool \
specfact code review run --path . --scope full \
>"$RAW_OUTPUT_PATH" 2>&1
REVIEW_EXIT_CODE=$?
popd >/dev/null
Comment thread
djm81 marked this conversation as resolved.

cat >"$SUMMARY_PATH" <<EOF
# README sample output capture

- CLI version: \`$CLI_VERSION\`
- Repo: \`$REPO_SLUG\`
- Repo ref: \`$CAPTURE_REF\`
- Repo path: \`$WORK_DIR\`
- Capture home: \`$CAPTURE_HOME\`
- Review exit code: \`$REVIEW_EXIT_CODE\`
- Command:

\`\`\`bash
uvx --from "specfact-cli==$CLI_VERSION" specfact init --profile solo-developer
uvx --from "specfact-cli==$CLI_VERSION" --with ruff --with radon --with semgrep --with basedpyright --with pylint --with crosshair-tool specfact code review run --path . --scope full
\`\`\`

- Raw output: \`$RAW_OUTPUT_PATH\`
- Init output: \`$INIT_OUTPUT_PATH\`
EOF
Comment thread
djm81 marked this conversation as resolved.

exit "$REVIEW_EXIT_CODE"
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# README sample output capture

- CLI version: `0.45.1`
- Repo: `nold-ai/specfact-demo-repo`
- Repo ref: `2b5ba8cd57d16c1a1f24463a297fdb28fbede123`
- Review exit code: `1`
- Repo path: `/tmp/specfact-demo-repo`
- Capture home: `/tmp/specfact-readme-capture-home`
- Command:

```bash
uvx --from "specfact-cli==0.45.1" specfact init --profile solo-developer
uvx --from "specfact-cli==0.45.1" --with ruff --with radon --with semgrep --with basedpyright --with pylint --with crosshair-tool specfact code review run --path . --scope full
```

- Raw output: `/workspace/docs/_support/readme-first-contact/sample-output/review-output.txt`
- Init output: `/workspace/docs/_support/readme-first-contact/sample-output/init-output.txt`
45 changes: 45 additions & 0 deletions docs/_support/readme-first-contact/sample-output/init-output.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
Downloading pygments (1.2MiB)
Downloading pydantic-core (2.0MiB)
Downloading cryptography (4.3MiB)
Downloading beartype (1.3MiB)
Downloading networkx (2.0MiB)
Downloaded pydantic-core
Downloaded cryptography
Downloaded pygments
Downloaded beartype
Downloaded networkx
Installed 60 packages in 32ms

β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β•β•β•šβ•β•β–ˆβ–ˆβ•”β•β•β•
β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘
β•šβ•β•β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β• β–ˆβ–ˆβ•”β•β•β• β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•”β•β•β• β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘
β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•‘
β•šβ•β•β•β•β•β•β•β•šβ•β• β•šβ•β•β•β•β•β•β• β•šβ•β•β•β•β•β•β•šβ•β• β•šβ•β• β•šβ•β• β•šβ•β•β•β•β•β• β•šβ•β•

Spec β†’ Contract β†’ Sentinel for Contract-Driven Development



⏱️ Started: 2026-04-03 20:55:08
β†’ Profile solo-developer: preparing workflow bundles…
β†’ Seeding workflow bundles: specfact-codebase, specfact-code-review
(copying bundled modules into your user module directory)
β†’ Bundle specfact-codebase β€” Codebase quality (analyze, drift, validate, repro)
Β· Installing marketplace module nold-ai/specfact-codebase …
βœ“ specfact-codebase ready
β†’ Bundle specfact-code-review β€” Scored code review (code review gate)
Β· Installing marketplace module nold-ai/specfact-code-review …
βœ“ specfact-code-review ready
βœ“ Installed: specfact-codebase, specfact-code-review
β†’ Discovering installed modules and writing registry state…
β†’ Indexing CLI commands for help cache…
βœ“ Bootstrap complete. Modules discovered: 7 (enabled=7, disabled=0).
Module management has moved to `specfact module` (for example: `specfact module
list`, `specfact module init`)
β†’ Checking IDE prompt export status…
Prompt status: missing=7, outdated=0 for detected IDE (cursor).
Run: specfact init ide --ide cursor
Use `specfact init ide` to install/update IDE prompts and settings.

βœ“ Finished: 2026-04-03 20:55:22 | Duration: 13.55s
Loading
Loading