{
  "markdown": "# BuildLoud\n\n![CI](https://github.com/marylin/buildloud/actions/workflows/ci.yml/badge.svg)\n[![License: AGPL-3.0](https://img.shields.io/badge/License-AGPL%20v3-blue.svg)](LICENSE)\n[![Node.js 20+](https://img.shields.io/badge/node-20%2B-green.svg)](https://nodejs.org)\n[![Zero Dependencies](https://img.shields.io/badge/dependencies-0-brightgreen.svg)](package.json)\n\n**Auto-capture your coding sessions into a build-in-public journal.**\n\n```\nyou commit code\n  -> hooks silently log commits and PRs to a session file\n    -> BuildLoud scores and writes a journal entry in your voice\n```\n\n## Quickstart\n\n```bash\n# 1. Add the marketplace\n/plugin marketplace add marylin/buildloud\n\n# 2. Install the plugin\n/plugin install buildloud@buildloud\n\n# 3. Set up your voice profile\n/journey-init\n\n# 4. Code normally — hooks capture everything automatically\n\n# 5. Check your journal\njourney status\n```\n\nHooks auto-register on install — no manual configuration needed.\n\n## Processing Modes\n\nConfigured in `~/.claude/journey/config.md`:\n\n| Mode | AI Usage | Token Cost | What Happens |\n|------|----------|------------|--------------|\n| **basic** (default) | None | 0 | Raw commit summaries, deterministic scoring |\n| **enhanced** | Prompt | ~200-500/session | Notifies about high-score entries for voice rewriting |\n| **full** | Agent | ~1000-5000/session | Agent rewrites entries with tool access for richer context |\n\nAll modes save raw entries first. If AI rewriting fails, entries are preserved as-is.\n\n```markdown\n## Hook Mode\n- mode: enhanced\n```\n\n## Skills\n\n| Command | Description |\n|---------|-------------|\n| `/journey-init` | Set up voice profile, notifications, platforms |\n| `/journal <text>` | Log an entry (quick mode) |\n| `/journal` | Log an entry (guided -- asks what happened) |\n| `/j <text>` | Shortcut for `/journal` |\n| `/journal-review` | Browse and curate entries by score |\n| `/journal-publish` | Rewrite entries for Twitter, LinkedIn, or blog |\n| `/journal-digest` | Generate weekly narrative summary |\n\n## CLI Commands\n\n```bash\njourney log \"shipped auth\" --type feature    # Manual entry with scoring\njourney status                               # Streaks, counts, pending sessions\njourney search \"auth\"                        # Search journal entries\njourney doctor                               # Check hooks, config, cache health\njourney recover                              # Process orphaned session files\njourney process-session --file PATH          # Score session data (used by hooks)\n```\n\nExample output from `journey status`:\n\n```\nBuildLoud Status\n  Current streak: 5 days\n  Longest streak: 12 days\n  Total entries:  47\n  Pending:        2 sessions\n  Last entry:     2026-03-29\n```\n\n## Hook Configuration\n\nBuildLoud uses four hooks in `~/.claude/settings.json`:\n\n| Hook | Trigger | What It Does |\n|------|---------|--------------|\n| **PostToolUse** | `Bash(git commit*)` | Appends commit data to the session JSONL file |\n| **PostToolUse** | `Bash(gh pr *)\\|Bash(git merge*)` | Flags PRs and merges as notable events |\n| **Stop** | Session ends | Scores the session and writes journal entries |\n| **SessionStart** | Session starts | Nudges about unreviewed high-score entries |\n\nAll hooks are `command` type, exit 0 on all paths (crash-proof), and run with 3-10s timeouts. Hooks auto-register when you install the plugin.\n\n## Scoring\n\nDeterministic, no AI. Every entry gets a 0-10 score based on heuristics:\n\n| Signal | Points |\n|--------|--------|\n| Milestone keyword (shipped, launched) | +4 |\n| Insight or blocker | +3 |\n| Manually logged via `/journal` | +3 |\n| Feature | +2 |\n| New project (first entry) | +2 |\n| Milestone detected (streak, volume) | +2 |\n| Bugfix, refactor, infra | +1 |\n| Insight phrases | +1 |\n| Hot project (3+ sessions/week) | +1 |\n\n- **7+** = ready to share\n- **5-6** = solid work, digest-worthy\n- **Below 5** = journal-only\n\n## Voice Profile\n\n`/journey-init` captures how you write. Stored in `~/.claude/journey/config.md`:\n\n```markdown\n## Voice\nSarcastic, honest, first-person. Short sentences.\n\n## Examples\n- \"Fifteen hours later I have a full orchestration platform.\"\n- \"The finance aesthetic we should have had from day one.\"\n\n## What I never say\n- \"Excited to announce\"\n- \"Thrilled to share\"\n```\n\nPer-repo overrides via `.claude/journey.md`.\n\n## Obsidian Integration (Optional)\n\nIf you use [Obsidian](https://obsidian.md), `/journey-init` can link your journal entries so they appear in your vault automatically. Just say \"yes\" when asked during setup.\n\nYour entries show up at `<obsidian-vault>/journal/YYYY/MM/YYYY-MM-DD.md` — browse, search, and link them like any other note.\n\n## Data and Privacy\n\n- **All data is local**: `~/.claude/journey/` -- markdown files and JSON cache\n- **What's captured**: commit messages, PR titles, timestamps, project names\n- **What's NOT captured**: diffs, file contents, credentials, environment variables\n- **Nothing is sent anywhere**: no telemetry, no cloud sync, no external API calls\n- **Git-trackable**: add `~/.claude/journey/` to a repo if you want version history\n\n```\n~/.claude/journey/\n  entries/YYYY/MM/YYYY-MM-DD.md   # Journal entries (one file per day)\n  weekly/YYYY-WNN.md              # Weekly digests\n  cache.json                      # Streaks, fingerprints, project stats\n  config.md                       # Your voice profile\n  errors.log                      # Error log with rotation\n```\n\n## Project Structure\n\n```\nbuildloud/\n  .claude-plugin/\n    plugin.json                   # Plugin manifest\n    hooks/hooks.json              # Auto-registered hooks (4 hooks)\n    skills/                       # 6 skills (SKILL.md per directory)\n  bin/journey.js                  # CLI entry point (6 commands)\n  lib/\n    score.js                      # Deterministic scoring + milestones\n    cache.js                      # Streaks, fingerprints, local state\n    markdown.js                   # Daily markdown file writer\n    errors.js                     # Error logging with rotation\n    config.js                     # Mode + voice reader\n    cli/                          # CLI command implementations\n  scripts/\n    journey-accumulate.sh         # Hook: capture git commits\n    journey-notable.sh            # Hook: capture PRs and merges\n    journey-stop.sh               # Hook: session-end scoring\n    journey-sessionstart.sh       # Hook: session-start nudge\n  tests/                          # 107 tests, 19 suites\n  config.example.md               # Voice profile template\n  package.json                    # Zero dependencies\n```\n\n## Requirements\n\n- **Node.js 20+** (uses `import.meta.dirname`, `node:test`, `parseArgs`)\n- **Claude Code** (hooks and skills run inside it)\n- Zero runtime dependencies. No API keys. No accounts.\n\n## License\n\n[AGPL-3.0](LICENSE) -- Copyright 2026 [Marylin Alarcon](https://github.com/marylin)\n",
  "bytes": 6838,
  "sha": "02d837253217d3bf039f437de13957ad770c62db763b2c23bd066e72aabc76cd",
  "repo_slug": "marylin/buildloud",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_marylin_buildloud_build_loud_a979f735/readme"
}