Releases

All published releases of SLOPE. See the full history on GitHub.

v1.37.0

v1.37.0

GitHub →

What's Changed

Full Changelog: https://github.com/srbryers/slope/compare/v1.36.0...v1.37.0

v1.31.0

v1.31.0

GitHub →

Highlights

Suggestion Engine — Structured Guard Responses

Guards can now return rich Suggestion objects with titled options, priority levels, and adapter-specific formatting. This replaces raw text blocks with interactive guidance.

  • Suggestion/SuggestionOption typesid, title, context, options[], requiresDecision, priority
  • Adapter support — Claude Code (context + deny), Cursor (block/allow), Windsurf (critical-only blocking)
  • Priority levelscritical forces deny, high/normal inject context only
5 New Guards
  • session-briefing — Runs slope briefing at session start (fires once per session)
  • post-push — Suggests next actions after a successful git push
  • phase-boundary — Blocks starting a sprint if previous phase cleanup is incomplete
  • claim-required — Warns when editing without an active sprint claim
  • review-stale — Warns about missing reviews at session end
Guard Migrations & Extensions
  • next-action — Now returns workflow-aware suggestions (post-hole routine, roadmap candidates) instead of generic options
  • pr-review — Returns structured review type options (code, architect, both, skip)
  • explore — Reads handoff context post-compaction for session continuity
  • sprint-completion — Detects review/auto-card completion to update gate state
Phase CLI
  • slope phase status — Show current phase cleanup gate status
  • slope phase complete <N> — Mark a phase as complete
  • slope phase reset <N> — Reset phase gates
Infrastructure
  • session-state.ts — Atomic session state for guard dedup (tmp + rename pattern)
  • phase-cleanup.ts — Phase gate tracking (5 gates: scorecards, handicap, map, findings, regression)
  • Critical fix: guard.ts passthrough for guards returning empty {} (was silently swallowing output)
Upgrade Notes

Run slope hook add --level=full after upgrading to install the 5 new guards and pick up the suggestion formatting.

What's Changed

Full Changelog: https://github.com/srbryers/slope/compare/v1.30.0...v1.31.0

v1.30.0

v1.30.0

GitHub →

Highlights

Sprint Analytics Dashboard (S66)
  • Handicap Trend API — per-sprint time-series of handicap, fairway%, GIR% via computeHandicapTrend()
  • Sprint Velocity Tracking — tickets/sprint trend with improving/stable/declining detection via computeVelocity()
  • Guard Effectiveness Metrics — JSONL-based guard execution recording + computeGuardMetrics() analytics
  • Dashboard Widgets — 3 new SVG chart widgets (trend time-series, velocity bars, guard stacked bars)
  • Dashboard API/api/guard-metrics route, /api/data now includes handicapTrend and velocity
  • Stats Exportslope stats export now includes handicap_trend and velocity fields
Bug Fixes
  • subagent-gate: deny when no model specified — Explore/Plan agents without explicit model param now blocked with message to resubmit with model: "haiku". Previously silently inherited Opus (~18x cost). Fixes #173
  • slope hook add: remove stale entries — Re-installing guards now removes outdated SLOPE hook entries (e.g., stale matcher: "Task") before adding fresh ones. Non-SLOPE hooks preserved.
Upgrade Notes

After upgrading, run slope hook add --level=full to:

  1. Fix the subagent-gate matcher ("Task""Agent")
  2. Clean up any other stale hook entries
  3. Pick up the new guard metrics recording

This is required for the subagent cost-control fix to take effect.

What's Changed

Full Changelog: https://github.com/srbryers/slope/compare/v1.29.0...v1.30.0

v1.28.0

v1.28.0 — context_search MCP tool + richer codebase map

GitHub →

What's New

`context_search` MCP tool

Semantic code search that returns relevant snippets (~3k tokens) instead of requiring 60k-token explore subagents. Uses embedding index when available, falls back to grep -F with a setup tip.

  • top param bounded (1-50) to prevent abuse
  • format: 'paths' | 'snippets' — no full-file mode (use Read for that)
  • Surfaces embedding failures in response instead of silent degradation
Richer `CODEBASE.md` API surface

slope map now shows full function signatures from SLOPE_REGISTRY (116 entries) instead of bare export names. Type-only exports dropped (discoverable via search({ module: 'types' })).

  • Token budget guard warns if API surface exceeds 15k chars
  • Empty section headers automatically cleaned up
Files changed
  • src/mcp/index.tscontext_search tool, config param on createSlopeToolsServer()
  • src/mcp/registry.ts — registry entries for discoverability
  • src/cli/commands/map.ts — signature lookup, type line removal, empty header cleanup
  • tests/mcp/index-src.test.ts — registration, config, grep fallback integration tests
v1.27.1

v1.27.1 — subagent-gate docs fix

GitHub →

Fix

  • Removed stale max_turns references from subagent-gate guard documentation
  • Fixed guard docs to show Agent matcher instead of Task
  • Updated guard description, triggers, behavior, and configuration docs to match actual behavior (model enforcement only)

For affected users

If your .claude/settings.json has a Task matcher for the subagent-gate hook, re-run:

npx slope hook add --level=full

This regenerates the hooks config with the correct Agent matcher.

v1.27.0

v1.27.0 — FATHOMS-Driven Improvements + Slash Commands

GitHub →

What's New

Guard Improvements
  • Tiered staleness in explore guard (#159) — 0-10 commits silent, 11-30 warn, 31+ block Edit/Write. Thresholds configurable via guidance.mapStaleWarnAt/mapStaleBlockAt.
  • Block sprint completion without scorecard (#156) — PR creation and session end are blocked when the scorecard file is missing, independent of gate status. Suggests slope auto-card or slope validate.
Roadmap Automation
  • Auto-update roadmap status (#157) — Sprint status in roadmap.json automatically updates to "complete" when slope validate succeeds. Phase status also updates when all sprints complete.
  • Cross-validate roadmap vs scorecards (#157) — validateRoadmap() now warns about status mismatches (scorecard exists but status isn't "complete") and phantom sprints (marked complete but no scorecard).
Deferred Findings Registry
  • Structured deferred findings (#158) — File-based registry at .slope/deferred-findings.json for tracking cross-sprint review findings.
    • slope review defer --from=N --to=M --severity=medium --description="..."
    • slope review deferred [--sprint=N] [--status=open]
    • slope review resolve --id=<uuid>
    • Integrated into slope briefing output for the target sprint.
Slash Commands
  • /start-sprint — Pre-sprint setup: briefing, branch creation, sprint state init, prior scorecard verification.
  • /post-sprint — Post-sprint: scorecard creation, validation, review generation, common-issues distillation.
  • /review-pr — Structured PR review with slope review recommend, finding tracking, and scorecard amendment.

Installed by slope init --claude-code to .claude/commands/.

Bug Fixes
  • Closed #149 (subagent-gate max_turns — already fixed in PR #155)
  • Explore guard now passes cwd to loadConfig() for correct custom threshold resolution

Stats

  • 22 files changed, +1,348 / -69
  • 2,651 tests passing
v1.26.1

v1.26.1 — Guard Hook Fixes

GitHub →

What's New

Guard Hook Fixes
  • Fix infinite recursion in guard dispatcherSLOPE_BIN_PREAMBLE set _SLOPE_BIN="slope" (bare name), causing the slope() shell function to call itself infinitely (SIGSEGV exit 139). Now resolves the full binary path via $(command -v slope).
  • Downgrade uncommitted changes to warning in stop-check — Only unpushed commits now hard-block session end. Uncommitted changes are a context warning since commit-nudge already handles nagging during the session.
  • Backfill missing hook JSON fields — Guard command now backfills session_id, cwd, and hook_event_name when Claude Code omits them from stdin.
  • Fix subagent-gate matcher — Changed from Task to Agent to match current Claude Code tool name.

Full Changelog: https://github.com/srbryers/slope/compare/v1.26.0...v1.26.1

v1.26.0

v1.26.0 — Doctor v2

GitHub →

What's New

Doctor v2: Version Hygiene, Hook Drift & Smart Guard Recommendations
  • Version drift detectionslope doctor now detects when config.slopeVersion falls behind package.json and auto-fixes it
  • Hook script staleness — Detects outdated managed sections in guard dispatcher and session hooks, auto-updates via slope doctor --fix
  • Smart guard recommendations — New slope guard recommend subcommand analyzes your workflow (sprint-workflow, monorepo, multi-session, flows) and suggests relevant missing guards
  • Config schema validation — Validates field types, metaphor registration, and detectedStack shape with auto-fix for invalid values
Other
  • Guard dispatcher updated to use portable SLOPE_BIN_PREAMBLE (project → global → npx fallback)
  • 16 new tests for doctor and guard recommend

Full Changelog: https://github.com/srbryers/slope/compare/v1.25.5...v1.26.0

v1.25.4

v1.25.4 — Analysis Paralysis Timeout

GitHub →

What's Changed

  • feat: Add analysis paralysis timeout and planner/executor separation for autonomous loop
v1.25.3

v1.25.3 — CLI --version and --help Flags

GitHub →

What's Changed

  • fix: Add --version and --help flags, improve version command
v1.25.2

v1.25.2 — The Terminal Caddy (OB1 Adapter & Slope Executor)

GitHub →

What's Changed

  • feat: Add OB1 harness adapter (#123)
  • feat: Add SlopeExecutor — custom agentic tool loop on Anthropic API
  • feat: Extract ExecutorAdapter interface and AiderExecutor wrapper
  • feat: Inner-loop guard integration to SlopeExecutor
  • feat: A/B test command for executor comparison
  • test: Executor adapter, aider executor, and slope executor tests
  • fix: Update stale schema version assertion in PG store test
v1.25.1

v1.25.1 — Force AskUserQuestion via Guard

GitHub →

What's Changed

  • fix: Guards can now force AskUserQuestion via blockReason (#134)
v1.25.0

v1.25.0 — Branch Discipline & Docs Manifest Sync

GitHub →

What's Changed

  • feat: Branch discipline guard, worktree enforcement, docs manifest sync (#133)
  • feat: Docs manifest sync pipeline — auto-sync CLI/guard/MCP metadata to slope-web (#129)
  • fix: Remove string concatenation from workflow expression (#132)
v1.24.0

v1.24.0 — Test Plan Parsing & MCP Tool

GitHub →

What's Changed

  • feat: Add test plan parsing and testing_plan_status MCP tool (#128)
  • test: Add test-plan parser tests
v1.23.0

v1.23.0 — Testing Session Flow

GitHub →

What's New

Testing Session MCP Tools

4 new MCP tools for structured manual testing sessions:

  • testing_session_start — Creates an isolated git worktree, returns setup steps from config
  • testing_session_finding — Records bugs/observations with severity during testing
  • testing_session_end — Ends session, returns summary by severity, cleans up worktree
  • testing_session_status — Shows active session info and findings
Config Support

New testing section in .slope/config.json:

{
  "testing": {
    "setup_steps": ["cd {worktreeRoot} && pnpm install"],
    "teardown_steps": ["pnpm test"]
  }
}

Supports {projectRoot} and {worktreeRoot} template variables.

Other Changes
  • DB migration v5 (SQLite) / v3 (PG) for testing session tables
  • Next-action guard detects active testing sessions
  • Registry entries for search({ module: 'testing' }) discovery
v1.22.0

v1.22.0 — Roadmap Refresh & slope doctor

GitHub →

What's Changed

  • feat: Roadmap refresh + slope doctor command (#123)
  • feat: Add .slope/ to .gitignore during slope init (#122)
v1.21.0

v1.21.0 — Compaction-Proof Review Gates & Worktree-Merge Guard

GitHub →

What's Changed

  • feat: Compaction-proof review gates — review state survives context compaction (#117)
  • feat: Worktree-merge guard — blocks destructive merge flags in worktrees (#118)
  • feat: Transition sprint to scoring phase on PR merge (#120)
  • docs: Sprint 60 scorecard + codebase map update (#119)
v1.20.0

v1.20.0 — Sprint Completion Guard

GitHub →

What's New

Sprint completion guard — enforces post-implementation gates (Gates 4.5–7) before PR creation or session end.

Features
  • .slope/sprint-state.json — tracks sprint lifecycle phase + 5 gate progression (tests, code_review, architect_review, scorecard, review_md)
  • sprint-completion guard (3 hook points):
    • PreToolUse:Bash — blocks gh pr create when gates are incomplete
    • Stop — blocks session end during implementing/scoring phases with incomplete gates
    • PostToolUse:Bash — auto-detects test pass (jest/vitest/bun test exit 0) and marks tests gate
  • slope sprint CLIstart --number=N, gate <name>, status, reset
  • Auto gate markingslope validate marks scorecard gate, slope review marks review_md gate
  • Phase transitions — review-tier creates sprint-state on plan detection, workflow-gate transitions to implementing on ExitPlanMode
  • next-action integration — defers to sprint-completion when sprint-state exists (no duplicate blocking)
  • Staleness check — warns when sprint-state doesn't match branch name pattern
  • Guard dispatcher — updated to support multi-definition guards (same name, different hookEvents)
Stats
  • 16 files changed (+822 lines)
  • 35 new tests (2378 total, 0 failures)
  • Scorecard: Sprint 59, Bogey (+1)

Full Changelog: https://github.com/srbryers/slope/compare/v1.19.1...v1.20.0

v1.19.1

v1.19.1 — Review-Tier Guard Fix

GitHub →

Fix: review-tier guard not firing via hook pipeline

Root Cause

findPlanContent(cwd) only searched {cwd}/.claude/plans/, but Claude Code writes plan files to ~/.claude/plans/ (global user directory). The guard never found any plan files when triggered through the hook pipeline.

Changes
  • review-tier.ts: Read plan directly from tool_input.file_path instead of relying on directory scan
  • plan-analysis.ts: Add ~/.claude/plans/ as fallback search path, with deduplication when cwd equals homedir
  • review-state.ts: Updated error message to mention both search locations
  • Tests: 3 new review-tier tests, homedir mock in review-state tests
Stats
  • 2343 tests passing, 0 failures
  • 4 review findings caught and addressed pre-merge
v1.19.0

v1.19.0 — Plan Review & Findings Capture Guards

GitHub →

What's New

Plan Review with Specialists
  • Review-tier guard now fires on PostToolUse:Write when a plan file (.claude/plans/*.md) is written
  • Automatically selects specialist reviewers based on ticket content (backend, database, frontend, etc.)
  • Surfaces up to 5 relevant gotchas from past sprints during plan review
  • Instructs Claude to use AskUserQuestion for review tier selection
Shared Plan Analysis Module
  • Extracted findPlanContent, countTickets, countPackageRefs, extractFilePatterns, extractTicketInfo into src/cli/guards/plan-analysis.ts
  • Both review-tier guard and review-state command share these helpers
PR Review Findings Capture
  • After PR review, the pr-review guard now instructs capture of findings via slope review findings add, scorecard amendment via slope review amend, and pattern distillation via slope distill --auto
Tests
  • 13 new test cases for the review-tier guard covering tier selection, specialist inclusion, gotcha matching/capping, and edge cases
v1.18.0

v1.18.0 — Staging Branch Workflow

GitHub →

What's New

Staging Branch Workflow for Autonomous Loop

Added --staging flag to slope loop continuous that consolidates all sprint PRs in a batch into a single umbrella PR, reducing review burden and keeping main clean.

Usage:

slope loop continuous --staging --max=6

How it works:

  • Creates a loop/batch-<sprintId> staging branch from origin/main
  • Each sprint PR targets the staging branch instead of main
  • After the batch completes, creates one umbrella PR (staging → main) with a consolidated summary table
  • Idempotent — safely resumes interrupted batches by reusing existing staging branches

New module: src/cli/loop/staging.ts

  • initStagingBranch() — create/reuse staging branch
  • createUmbrellaPr() — batch summary PR with sprint results table
  • cleanupStagingBranch() — safe delete after merge

Changes across the loop infrastructure:

  • worktree.ts — optional baseBranch param for branching from staging
  • pr-lifecycle.tsbaseBranch param for createPr/hasCommitsAhead, isStagingMerge option for autoMerge (skips file-count gate)
  • executor.ts — threads staging branch through worktree/PR/merge, fetches staging ref after each sprint merge
  • continuous.ts — staging init before loop, umbrella PR + cleanup after

Fully backwards compatible — without --staging, behavior is unchanged.

v1.17.0

v1.17.0 — Roadmap-Driven Backlog & Planner/Executor

GitHub →

What's New

Roadmap-driven backlog generation (Strategy 6)

When scorecard analysis produces empty backlogs (all hotspots resolved, 100% success rates), the analyze pipeline now falls back to structured planned sprints from roadmap.json. Scorecard-driven sprints always take priority. Caps at 3 sprints per regeneration cycle to force regression re-checks between batches.

  • New planned array in roadmap.json with 6 Phase 10 sprint definitions
  • PlannedTicket/PlannedSprint types in loop types
  • 'roadmap' strategy routed to API model in model-selector
  • Graceful degradation on malformed roadmap data
Planner/executor separation

Two-phase ticket execution — planner generates concrete file-level execution plans (target files, actions, test files), executor passes them as structured context to Aider.

  • Tier 1: enriched file metadata from backlog
  • Tier 2: grep-based file discovery
  • Tier 3: generic fallback
  • Replaces slope prep injection with structured plan prompts
Other improvements
  • Structured prompts with GSD-style specificity (#100)
  • Substantiveness guard — detects/reverts comment-only changes (#100)
  • Test file exclusion from hotspot source files (#101)
  • Unified roadmap document (#102)

Stats

  • 2297 tests passing across 130 files
  • Current handicap: 0.4
v1.16.0

v1.16.0 — slope loop CLI

GitHub →

`slope loop` — TypeScript Rewrite of Autonomous Sprint Execution

Rewrites the slope-loop/*.sh shell scripts into a first-class slope loop CLI command with type safety, testability, and security hardening.

New Command: `slope loop`
Subcommand Description
slope loop status Show loop progress, next sprint, config
slope loop config Loop configuration management
slope loop run Single sprint execution
slope loop continuous Multi-sprint loop with backlog regen
slope loop parallel Dual-sprint parallel with overlap detection
slope loop results Format/display sprint results
slope loop analyze Mine scorecards → generate backlog
slope loop models Model selection analytics
slope loop guide SKILL.md word count, hazard check
slope loop clean Cleanup stale artifacts
Architecture
  • 12 source files under src/cli/loop/ with clean module separation
  • 81 new tests across 7 test files (2218 total tests passing)
  • 4-factor model routing: token-based, file-based, data-driven, club defaults
  • Worktree isolation: git worktrees for sprint execution with atomic locking
  • PR lifecycle: 5-check structural review + 5-gate auto-merge safeguards
  • Config chain: env vars → .slope/loop.config.json → defaults
Security Hardening
  • All shell commands use execFileSync with array args (no string interpolation)
  • SHA validation before git reset --hard
  • Process group kill (kill(-pid)) for clean shutdown
  • Aider stdin set to ignore to prevent interactive hangs
Key Types
  • LoopConfig (16 fields with env var mapping)
  • BacklogFile, BacklogSprint, BacklogTicket
  • SprintResult, TicketResult
  • AiderOutcome enum for spawn error detection
v1.15.1

v1.15.1 — Worktree-aware stop-check guard

GitHub →

Fixes

  • stop-check guard is now worktree-aware — when running in the main checkout with other worktrees present, uncommitted-change blocks are downgraded to warnings since dirty state may belong to another session
  • Unpushed commits always block regardless of worktree state (they're branch-specific)
  • Worktree sessions are never downgraded — if you're inside a worktree, the guard correctly blocks on your own dirty state
  • Added .claude/worktrees/ to .gitignore so worktree directories don't show as untracked

Context

When running parallel Claude Code sessions with worktrees, the stop-check guard was blocking sessions from exiting because it always checked the main checkout's status — seeing dirty files from other sessions as uncommitted work.

v1.15.0

v1.15.0 — The Autonomous Loop

GitHub →

v1.15.0 — The Autonomous Loop

68 commits since v1.13.2 spanning sprints S42–S60. This release brings multi-sprint initiative orchestration, a self-development loop that runs sprints autonomously, and the infrastructure to support it.

Initiative Orchestration (S43)
  • Multi-sprint initiatives with structured review gates
  • State machine: pending → planning → plan_review → executing → scoring → pr_review → complete
  • Keyword-based specialist selection (backend, ml-engineer, database, frontend, ux-designer)
  • CLI: slope initiative create|status|next|advance|review|checklist
  • 67 new tests for initiative core + CLI
Self-Development Loop (S44–S45)
  • slope-loop/run.sh — single sprint runner with tiered model routing (local Ollama + API fallback)
  • slope-loop/continuous.sh — loop runner with backlog auto-regeneration
  • slope-loop/parallel.sh — parallel runner with module overlap detection (git worktrees)
  • slope-loop/analyze-scorecards.ts — mines scorecard data for backlog generation
  • slope-loop/model-selector.ts — data-driven model tier recommendations
  • slope-loop/dashboard.ts — static HTML dashboard (handicap, model rates, costs, convergence)
  • Agent guide skill (slope-loop-guide/SKILL.md) for sprint execution
Semantic Embedding Index (S46)
  • Per-ticket code context via embedding similarity search
  • slope index CLI for building/refreshing the index
  • slope context --ticket=<id> for retrieving relevant code snippets
  • Resilient batch embedding with skip for lock files
Structured Execution Plans (S47)
  • slope prep <ticket> — generates execution plans per ticket
  • slope enrich <backlog> — enriches backlog tickets with file context and token estimates
  • Integrated into run.sh for automated plan injection
Loop Hardening (S48–S60)
  • Ticket validation gate — skip tickets with missing modules or no files on disk
  • Auto PR creation — PRs created automatically with ticket results summary
  • Structural review — 5 grep-based checks on PR diff (type escapes, console.log, untested files, security-sensitive paths, large diffs)
  • Auto-merge with safeguards — tests, typecheck, finding severity, file count, passing ticket gates
  • No-op detection — detect when Aider produces zero code changes
  • Push after each ticket — recovery point discipline
  • Post-ticket typecheck + test guards (blocking) — revert bad commits via git reset --hard + git clean -fd
  • Filtered test command — excludes guards.test.ts false positive from stop-check during loop runs
  • Local model optimizations — flash attention, KV cache quantization, batch size tuning, context budget reduction, --auto-test disabled for local models
  • Model upgrades — Qwen2.5-Coder:32b → Qwen3-Coder:30b → Qwen3-Coder-Next (79.7B MoE)
  • Stop-check guard fixpgrep replaces fragile ps aux | grep for loop detection
Other
  • Portable timeout command (macOS gtimeout support)
  • Sprint history and scorecard artifacts (S42–S60)
  • CLAUDE.md and codebase map updates
v1.13.2

v1.13.2 — Fix MCP server init, cross-sprint deps, registry discoverability

GitHub →

Fixes

  • MCP binary name: slope init now writes npx -y mcp-slope-tools instead of the broken npx @slope-dev/slope/mcp subpath export
  • Cross-sprint ticket dependencies: validateRoadmap no longer rejects valid cross-sprint depends_on references (e.g., S3-1 → S2-1)
  • Registry cross-references: Related roadmap functions (validateRoadmap, computeCriticalPath, findParallelOpportunities) now reference each other in MCP search results

Upgrade

npm install -g @slope-dev/[email protected]

Re-run slope init in existing projects to fix MCP configs.

v1.13.1

v1.13.1 — Fix stop-check loop on untracked files

GitHub →
Bug Fix
  • stop-check guard: Untracked files (??) now produce a non-blocking warning instead of blocking. This fixes an infinite loop when orphaned files from previous sessions are present but shouldn't be committed.
  • Modified/staged/deleted files still block as before.
  • When both modified and untracked files exist, the block message includes the untracked count.
v1.13.0

v1.13.0 — CLI Command Registry

GitHub →

What's Changed

  • feat: Add CLI_COMMAND_REGISTRY as single source of truth for CLI commands
  • feat: Export CLI_COMMAND_REGISTRY and CliCommandMeta from package root
  • refactor: Use CLI_COMMAND_REGISTRY in map command
  • test: Add CLI_COMMAND_REGISTRY tests
  • docs: Update README with review commands, all 15 guards, and new API exports
v1.12.0

v1.12.0 — The Scoring Committee

GitHub →

Sprint 34 — The Scoring Committee

Integrates implementation review rounds into SLOPE's scoring framework. Reviews are recommended based on sprint characteristics, findings are tracked as structured data, and scorecards are amended with review-sourced hazards that affect the final score.

New Features
  • slope review recommend — Recommends review types (architect, code, ml-engineer, security, ux) based on sprint metadata (ticket count, slope, file patterns)
  • slope review findings add/list/clear — Manages review findings as structured data in .slope/review-findings.json
  • slope review amend [--sprint=N] — Injects review findings as hazards into scorecard shots and recalculates score via buildScorecard()
  • needs-amend guard state — Next-action guard suggests amend when findings exist but scorecard hasn't been amended
Core API
  • recommendReviews(input) — Pure function returning ReviewRecommendation[]
  • findingToHazard(finding) — Converts ReviewFindingHazardHit using REVIEW_TYPE_HAZARD_MAP
  • amendScorecardWithFindings(scorecard, findings) — Idempotent scorecard amendment with deduplication
Types
  • ReviewType: 'architect' | 'code' | 'ml-engineer' | 'security' | 'ux'
  • ReviewFinding, ReviewRecommendation, AmendResult
  • REVIEW_TYPE_HAZARD_MAP: architect→bunker, code→rough, ml-engineer→rough, security→water, ux→trees
Testing
  • 52 new tests across 3 test files
  • 1547 total tests passing
v1.7.0

v1.7.0 — CaddyStack MVP Gaps

GitHub →

What's New

Seven SLOPE gaps filled to power the CaddyStack MVP:

  • PostgreSQL store adapter — full SlopeStore implementation with multi-tenancy (project_id), transaction-scoped advisory lock migrations, and JSONB-aware row mapping
  • Multi-project configFileProjectRegistry for managing multiple project configs
  • Interview-based initinitFromInterview() + slope init --interactive for guided project setup
  • Remote git analysisGitHubClient using native fetch() with typed errors, auto-pagination, and rate-limit handling
  • CI webhook integration — GitHub webhook signature validation and check_run/workflow_run handlers
  • Real-time event ingestion — batch event ingestion with validation, idempotency, and framework-agnostic HTTP handler
  • Standup aggregationaggregateStandups() for multi-agent team standups with conflict detection

Other Changes

  • PostgreSQL service added to CI — store-pg tests run on every PR
  • pnpm test:pg script for local dev with Docker
  • Regression tests verifying store-pg module isolation (always run, no PG required)

Install

npm install @slope-dev/[email protected]

PostgreSQL support (optional):

npm install pg
v1.6.0

v1.6.0 — Agile Metaphor & Subagent Orientation

GitHub →

What's Changed

  • feat: Add audit sprint type and agile metaphor
  • feat: Inject orientation context from subagent-gate on approval
  • fix: Update slope map to scan flat src/ layout instead of packages/
  • chore: Regenerate CODEBASE.md via slope map
v1.5.4

v1.5.4 — Package Rename to @slope-dev/slope

GitHub →

What's Changed

  • docs: Update package references from @srbryers/* to @slope-dev/slope
v1.5.3

v1.5.3 — Null Guard Safety

GitHub →

What's Changed

  • fix: Add null guards for shots/hazards in core modules
v1.5.2

v1.5.2 — Guard Gitignore Fixes

GitHub →

What's Changed

  • fix: Stop-check, commit-nudge, and compaction guards now ignore gitignored files
  • fix: Update stale paths from old multi-package structure
  • chore: Remove .slope/common-issues.json and .env from git tracking
  • docs: Sprint 29 scorecard and review
v1.5.1

v1.5.1 — Package Consolidation Fixes

GitHub →

What's Changed

  • fix: Correct vi.mock paths after package consolidation
  • fix: Update version-bump script for consolidated package
  • chore: Add PR trigger to CI workflow
  • chore: Add .env to gitignore