docs: DDEV/Docker repositioning, SEO, brand assets, and content accuracy - #24
Conversation
Reframe the README and docs homepage around the differentiator — running git hooks inside DDEV/Docker containers — instead of a generic hook runner. SEO: - add sitemap, keyword-rich description, OG/Twitter meta tags - fix master -> main branch links (default branch is main) - enable lastUpdated and cleanUrls Brand assets (website/public/): anvil logo (transparent), favicon, and a 1200x630 social card wired into og:image/twitter:image. Also adds CLAUDE.md and docs/brand-assets.md (asset prompts for reuse). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Bring the docs in line with the shipped code: - CLI reference: add missing commands (validate, list, ci, cache clear, update) and all run/doctor/init flags; fix completion shells (bash/zsh/ fish — pwsh was never supported) - Config reference: document parallel, caching, timeouts, depends_on, env, check-mode, stage_outputs, show_output, [update], and the full hook list (prepare-commit-msg, post-commit/merge/rewrite) - Commit policy: correct ticket extraction (regex, not PRJ_123) and add branch-validation / prepare-commit-msg fields - Env: add SKIP_GROUP_* and FORGE_GLOBAL_CONFIG - Config guide: document global user config precedence - Presets: correct node prettier/eslint extensions - Installation: fix master -> main install URL, update version format Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
TerrorSquad
left a comment
There was a problem hiding this comment.
Self-review — cross-checked the documented claims against internal/forge/. One accuracy finding:
default_backend default is not "host" (reference/config.md, guide/backends.md)
ResolveBackend (backend.go) treats an omitted default_backend differently from an explicit "host":
""(omitted) → auto-detects DDEV if the web container is running, else host"host"→ always host, auto-detection disabled
The reference table lists the default as "host", which hides the auto-detect behavior, and the backends guide doesn't mention that host opts out of detection. Fixing both.
Everything else verified accurate: full command/flag surface matches app.go, config fields match the structs, presets match presets.go, parallel inheritance matches IsParallelMode, ticket regex matches ticketRegexFor, and the 7-hook list matches supportedHooks. Build passes with the dead-link checker on.
Omitting default_backend auto-detects DDEV (if the container is running); an explicit "host" forces host and disables detection. Addresses review. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Summary
Repositions the project and docs around the real differentiator — running git hooks inside DDEV/Docker containers — fixes the website SEO basics, adds brand assets, and brings the docs content back in sync with the shipped CLI/config.
Changes
Positioning
SEO
master→mainlinks (default branch ismain)lastUpdated+cleanUrlsBrand assets (
website/public/)og:image/twitter:imageDocs accuracy — the content had drifted from the code:
validate,list,ci,cache clear,update) and allrun/doctor/initflags; fix completion shells (pwshwas never supported)depends_on,env, check-mode,[update], and the full 7-hook listprepare-commit-msgfieldsSKIP_GROUP_*andFORGE_GLOBAL_CONFIGCLAUDE.mdanddocs/brand-assets.mdVerification
vitepress buildpasses (dead-link check clean)internal/forge/source (config structs, presets, backend, completion, runner)🤖 Generated with Claude Code