feat: scaffold next-postgres-shadcn full stack developer harness#23
Draft
ryaneggz wants to merge 58 commits intodevelopmentfrom
Draft
feat: scaffold next-postgres-shadcn full stack developer harness#23ryaneggz wants to merge 58 commits intodevelopmentfrom
ryaneggz wants to merge 58 commits intodevelopmentfrom
Conversation
Provision a Full Stack Developer agent workspace with: - Next.js 15+ (App Router, TypeScript strict, src/ directory) in workspace/next-app/ - PostgreSQL 16 via docker-compose.nextjs.yml on isolated network - Prisma ORM with schema configured for PostgreSQL - shadcn/ui + Tailwind CSS with light/dark/system theme (next-themes) - PWA support via next-pwa - Vitest + React Testing Library + Playwright for testing - ESLint + Prettier + Husky pre-commit (lint-staged + tsc + tests) - GitHub Actions CI mirroring pre-commit checks with Postgres service - Cloudflared tunnel for next-postgres-shadcn.ruska.dev - agent-browser + Chromium for QA - Ralph autonomous agent orchestrator - Feature and bug issue templates tailored for the stack - Build health heartbeat (every 30 min, 9am-9pm) - Setup README documenting post-provisioning auth steps Closes #22 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The development branch has no root Makefile. All sandbox management commands now use the openharness CLI (quickstart, shell, stop, clean, heartbeat sync/stop/status) which is the actual tool available. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Ralph is harness-level tooling, not project-level. It belongs alongside SOUL.md, MEMORY.md, and .claude/ at the workspace root. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add `openharness ralph` subcommand with full plan-to-PR pipeline: - prd: generate PRD from plan files - setup: convert PRD to prd.json + create draft PR - run: start Ralph loop in tmux session - status: show story progress and tmux state - reflect: update MEMORY.md with actionable intelligence for future sessions - cleanup: lint, format, type-check, test before PR - pr: archive run by branch name + undraft PR Also includes: - /prd and /ralph skills for use inside sandbox - Slack notification hooks (Stop + Notification events) - .env.claude with SLACK_WEBHOOK_URL - Ralph documentation in AGENTS.md - Removes next-app/Makefile (Ralph commands now in CLI) - All CLI and sandbox tests pass Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The file is already covered by **/.env* in .gitignore. The secret stays local only. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Consolidate permissions into settings.local.json, remove peer flags from lock files, add example env and plans directory. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add standalone Dev Container setup instructions so users who clone this branch directly can spin it up without the orchestrator. Expand docs to match the root project README depth — services, commands, Ralph, memory, heartbeats, and management. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…d tunnel
- next dev -H 0.0.0.0 for container port forwarding
- turbopack: {} in next.config.ts for Next.js 16
- Fix circular --font-sans CSS variable, apply Geist directly
- Add cloudflared-tunnel.sh for reproducible tunnel setup
- Add .openharness/config.json with compose override declaration
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Root CLAUDE.md: replace make with openharness CLI, add compose override docs, document .openharness/config.json and cloudflared-tunnel.sh - Workspace AGENTS.md: update cloudflared tunnel section with actual config path and setup script, document 0.0.0.0 binding, add .openharness/config.json reference Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… script - Quickstart uses npm run setup instead of manual cd/npm/link - Base branch corrected to main - Added compose override note for PostgreSQL + port 3000 - Dev Container moved to optional section - Cloudflared section uses install/cloudflared-tunnel.sh Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Root AGENTS.md (symlinked as CLAUDE.md) now identifies this as a Full Stack Developer workspace, not the orchestrator. Points to workspace/SOUL.md, workspace/MEMORY.md, workspace/AGENTS.md for persona, context, and operational instructions. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- CI triggers only on agent/next-postgres-shadcn branch - Remove url from prisma schema (Prisma 7 uses prisma.config.ts) - Add engines >= 22 to package.json and .nvmrc Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Rename workflow to 'CI: next-postgres-shadcn' to distinguish from orchestrator CI - Add passWithNoTests to vitest config (no test files yet) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Polls GitHub Actions for the current branch, reports pass/fail with failure details, and includes local pre-flight commands. Agent should use this after every push to confirm work is done. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Both root and workspace instruction files now list all available slash commands: /ci-status, /agent-browser, /prd, /ralph, /quality-gate, /strategy-review. Emphasizes running /ci-status after every push. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
8 self-authored rules (2 global + 6 path-scoped): - git.md: commit format, push + CI workflow - code-quality.md: strict TS, linting, formatting - nextjs.md: App Router + Vercel best practices (merged) - components.md: shadcn, cva, accessibility - prisma.md: schema-first, Prisma 7, migrations - testing.md: vitest, RTL, playwright - styles.md: Tailwind v4, theming, fonts - api.md: route handlers, validation Also: slim AGENTS.md to 113 lines (from 262), gitignore Prisma generated client, add /agent-browser skill. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Hero with Live Demo + GitHub CTAs, 6 feature cards, quick start terminal with copy button, tech stack badges, dark mode toggle, responsive layout. All shadcn/ui components, Lucide icons, no external dependencies. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Visitors fork this specific harness branch, not the main repo. Simplified to: clone branch → npm run setup → docker compose → shell. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… mode default - Quickstart shows complete flow: clone → build → compose → setup → shell → auth boundary (cloudflared + gh) → resume - Lightweight bash syntax highlighting (comments, commands, flags, paths) - Default theme changed from system to dark Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Comments: emerald green (distinct from code) Flags: sky blue Paths/URLs: amber Commands: bold foreground Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Quickstart now shows the intended UX: 1. User clones + npm run setup (2 commands) 2. User starts claude — agent auto-provisions everything 3. Agent pauses at auth boundary, user runs cloudflared login + gh auth 4. Agent resumes: configures tunnel, starts dev server, validates Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Shows claude --permission-mode plan with example prompt - Agent generates SSH key, returns pub key for user to add - Agent pauses at auth boundaries (cloudflared, gh) - Concise 4-step numbered flow, less comment noise Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Terminal block: 3 clean commands (clone, setup, claude plan mode) - Example prompt block: copyable query for the agent - Steps list: plain text describing what the agent does - No bash comments as documentation Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Query inlined into claude -p "..." — single copyable command - Removed separate example prompt block - Moved QuickStart to right after Hero (visible on page load) - Features and Tech Stack follow below Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Restored comment highlighting (emerald green, italic)
- String highlighting (amber) for quoted text
- Prompt simplified to "Provision this harness" (skill handles details)
- Clone command uses backslashes for readable line wrapping
- Removed .includes(".") from path detection (was catching prose)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Hero (left) + QuickStart terminal (right) in a 2-column grid on lg breakpoint. Stacks vertically on mobile. Both visible on page load without scrolling. Prompt simplified to "Provision this harness". Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Tech stack: infinite scrolling marquee with Lucide icons, two rows scrolling in opposite directions - All GitHub links now point to agent/next-postgres-shadcn branch - CSS keyframe animations for marquee + marquee-reverse Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Rounded pill badges with icons and backdrop blur - Tripled items for seamless loop continuity - Gradient edge fades on left/right for smooth appearance - Pauses on hover for readability - Two rows scrolling in opposite directions Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Single continuous row instead of two, cleaner pill badges with hover states, gradient edge fades, pause on hover. Closer to ruska.ai aesthetic. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Large cards with emoji icons (🐘 🐳 🎭 etc), name + subtitle - Matches ruska.ai/services tech ecosystem pattern - Slower animation (60s vs 30s) for readability Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…nd project intent Rewrite all landing page sections to communicate what problems this harness solves: setup overhead, agent isolation, amnesia, autonomous operation, visual verification, and multi-agent coordination with independent heartbeats. - Add FAQ accordion section with problem-oriented questions - Add agent-browser skill for browser automation and screenshots - Add .claude/screenshots/ with .gitkeep (contents gitignored) - Fix string highlighting bug in quick-start terminal block - Hero/features/tech-stack copy reframed around harness intent Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…README All three now use the same flow: clone the agent/next-postgres-shadcn branch, npm run setup, claude -p "Provision this harness". Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add paths filter to ci.yml so pushes that only touch docs, skills, memory, or harness config don't trigger the full lint/build/test pipeline. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… repo - Add release.yml: calver tags (YYYY.M.D) trigger CI + Docker build + GitHub Release - Update all clone URLs and GitHub links from open-harness branch to ryaneggz/next-postgres-shadcn - Add versioning section to README documenting branch strategy and release flow - Align quickstart across landing page, root README, and next-app README Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds autonomous issue monitoring for ryaneggz/next-postgres-shadcn:
- Issue-triage skill: queries unassigned issues hourly, spawns 3 parallel
sub-agents (Implementer, Critic, PM) for adversarial analysis, then an
Expert AI Council synthesizes into a draft PR using issue template format
- Sub-agent definitions: .claude/agents/{implementer,critic,pm,council}.md
- Heartbeat: hourly cron (24/7) with idempotency guards
- Memory protocol: self-improving loop at end of every task
- IDENTITY.md, USER.md: agent identity card and owner context
- SOUL.md: Memory Improvement Protocol added
- MEMORY.md: Triage History section for pattern tracking
- Issue-triage rule: workflow constraints for deterministic execution
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
skill: add issue-triage skill with parallel sub-agents and AI council
Separate concerns across root identity files: - SOUL.md: personality only (was mixing practices/procedures) - AGENTS.md: operating procedures, decision rules, memory protocol - TOOLS.md: environment, tools, services, workflows (new) - HEARTBEAT.md: meta-maintenance routines (new) - MEMORY.md: cleaned — removed stack info duplicated from IDENTITY.md - Updated cross-references in IDENTITY.md, USER.md, outer CLAUDE.md Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add destroy/diagnose/release skills, cloudflared compose overlay, startup script, vitest setup, and landing page component updates. Refactor Docker entrypoint, setup, and provision skill. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
| GitGuardian id | GitGuardian status | Secret | Commit | Filename | |
|---|---|---|---|---|---|
| 29850720 | Triggered | Generic High Entropy Secret | 389861c | workspace/startup.sh | View secret |
🛠 Guidelines to remediate hardcoded secrets
- Understand the implications of revoking this secret by investigating where it is used in your code.
- Replace and store your secret safely. Learn here the best practices.
- Revoke and rotate this secret.
- If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.
To avoid such incidents in the future consider
- following these best practices for managing and storing secrets including API keys and other credentials
- install secret detection on pre-commit to catch secret before it leaves your machine and ease remediation.
🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.
Add missing npm run setup step, use full claude CLI invocation, and match the agent steps to the README description. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This reverts commit 9198c91.
Update both READMEs to use claude "/provision" and match the landing page's agent step descriptions. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… startup - Harden startup.sh: npm install, prisma generate/migrate, DB wait, health check - Add procps to Dockerfile for process detection - entrypoint.sh auto-installs cloudflared + agent-browser from env flags - Add test:setup (8 vitest tests) for stack validation - Add /provision skill: build, start, wait, validate, report SSH key + setup steps - Add /diagnose skill: run tests from host, auto-remediate failures - Add /release skill: CalVer YYYY.M.D with auto-increment - Add /destroy skill: teardown containers + volumes - Update README with Skills section - Update landing page quick-start to use /provision Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Runs /release if new commits exist since last tag. Skips with HEARTBEAT_OK otherwise. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…l.json - Add .claude/hooks/notify_slack.sh for Stop/Notification hooks - Remove .claude/settings.json (superseded by settings.local.json with dynamic $CLAUDE_PROJECT_DIR paths) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…tbeat, and process tests - 5 expert sub-agents (product, docs, security, registry, agent-systems) + strategic council (opus) + strategic critic for adversarial backpressure - /strategic-proposal skill: experts → council draft → critic → council final - /roadmap page with signal-over-features principle, vote callout, phase sections - /implement skill: picks validated roadmap items, critic reviews PRD, runs Ralph in tmux with 1:1 iteration-to-story, browser QA, US-FINAL (archive + draft PR with Closes #N + Roadmap Context + CI green) - /backlog-rank skill: daily PM curation of top-10 issues - 35 tests: roadmap data integrity, page rendering, PRD validation (US-FINAL, browser QA, typecheck, Closes, Roadmap Context), implement guards - Implementer heartbeat every 2h (9am-9pm), backlog-rank daily 08:00 UTC Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…EAT, TOOLS - Add Product Roadmap section to README (vision, phases, properties, automation pipeline, how to vote) - README skills table: add 5 missing workspace skills - README workflow table: list all 5 heartbeats - README project structure: reflect new dirs, counts (12 skills, 11 agents, 35 tests) - IDENTITY.md: add missing Nightly release heartbeat to list - HEARTBEAT.md: expand from 2 to all 5 heartbeats with descriptions - TOOLS.md: document /implement integration with Ralph, add archive dir Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Fix archive path: .ralph/archive/ → .ralph/archives/YYYY-MM-DD/<feature>/ (ralph.sh, implement SKILL.md, CLAUDE.md all aligned) - US-FINAL now requires: dev server 200, public URL 200, archive verification - Add git safety rules to .ralph/CLAUDE.md (never clone, never init) - Fix tmux launch to use gosu sandbox (Claude refuses --dangerously-skip-permissions as root) - Add validateArchivePath guard + 4 tests (39 total) - Seed roadmap with 2 items (#4 health endpoint, #5 OG meta tags) - Add @prisma/adapter-pg dependency - Clean nested .git Ralph left in workspace/next-app/ - Harden .gitignore for src/generated/, repo-clone artifacts, .ralph/.claude/ Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
workspace/next-app/keeping agent harness files (SOUL.md, MEMORY.md, heartbeats) at workspace root${NAME}-devnet)Stack & Tooling
src/directory)next-postgres-shadcn.ruska.dev), agent-browser + Chromium for QAFiles Changed
docker/docker-compose.nextjs.yml— PostgreSQL + isolated network + port 3000workspace/SOUL.md— Full Stack Developer personaworkspace/MEMORY.md— Seeded stack decisionsworkspace/AGENTS.md— Stack-specific guidance (DB, shadcn, testing, CI, tunnel, QA)workspace/next-app/— Scaffolded Next.js project with all tooling configuredworkspace/heartbeats/build-health.md— Periodic build + test health check.github/workflows/ci.yml— CI pipeline with Postgres service.github/ISSUE_TEMPLATE/{feature,bug}.md— Stack-tailored templatesREADME.md— Setup guide with post-provisioning auth stepsTest plan
cd next-app && npm run buildsucceedsnpm testpasses (Vitest)npm run lint && npm run format:check && npm run type-checkall cleanpsql -c "SELECT 1"(requires compose nextjs override)next-postgres-shadcn.ruska.dev(requires auth)Closes #22
🤖 Generated with Claude Code