Moves the release process to a `main <- develop <- feat/fix` model.
`develop` is now the repository default and the base for every feature
and fix PR. release-please watches it and keeps a `chore(develop):
release X.Y.Z` PR open there; merging that PR is what "release now"
means. `main` stops being a branch anyone commits to and becomes a
pointer to the last released commit.
## What changed
| File | Change |
| :--- | :----- |
| `release-please.yml` | Triggers on `develop`, `target-branch:
develop`, new `fast-forward-main` and `docs` jobs |
| `pages.yml` | Gains a `workflow_call` trigger |
| `ci.yml` | Runs on pushes to `develop` |
| `CLAUDE.md` | Release section rewritten for the two-branch flow |
## The GITHUB_TOKEN trap, twice
This repo already calls `publish-mcp.yml` through `needs` rather than
from `on: push: tags`, because a release created with the default
`GITHUB_TOKEN` does not trigger other workflows.
The `main` fast-forward is the same kind of push and hits the same wall.
A `pages.yml` left watching `main` would therefore have gone quiet
forever after this change - docs would simply have stopped deploying,
with nothing failing to say so. So `pages.yml` gets a `workflow_call`
trigger and is chained from the release run instead. Its `push: main`
trigger is kept as a manual escape hatch.
## Failure mode worth knowing
`fast-forward-main` does a plain `git push origin
<sha>:refs/heads/main`. If someone pushes to `main` directly, that push
stops fast-forwarding and the job fails with an explicit error naming
the fix (merge `main` into `develop`, re-run). It never force-pushes, so
a divergence is reported rather than silently discarded.
`main` is currently unprotected, which is what lets the workflow move it
with the default token. A ruleset restricting pushes to the workflow
would be a sensible follow-up, but it needs a bypass actor configured
correctly or it blocks the very job that advances `main` - worth doing
after one release has been observed working.
## Verification
- All seven workflow files parse as YAML.
- Docs typography check clean.
- Release-notes `awk` block, `publish` job, and
`release-please-config.json` are untouched.
Consolidates the following Dependabot PRs into a single update:
- #60 — ci(deps): bump actions/checkout from 6 to 7 in the actions group
- #61 — deps(python): update pymdown-extensions requirement from
>=10.21.3 to >=11.0 in the python group
Supersedes #60
Supersedes #61
No lock file to regenerate: the actions bump only edits workflow YAML,
and pymdown-extensions is a `>=` pin in requirements-docs.txt (not
tracked by uv.lock/pyproject.toml). The two changes touch disjoint files
and merged without conflicts.
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
## Summary
Onboards a MkDocs (Material) documentation site, mirroring the
dap-dbgeng setup, and migrates the GitHub wiki into it (trimmed to the
essentials: getting started, use cases, and a lookup reference).
## What's included
**Site infrastructure**
- `mkdocs.yml` - Material theme, VS Code blue palette, light/dark
toggle, the same markdown extensions and nav structure as dap-dbgeng.
- `requirements-docs.txt` - pinned `mkdocs` / `mkdocs-material` /
`pymdown-extensions`.
- `docs/assets/` - `extra.css` (brand color + mermaid styling) and the
self-contained `mermaid.js` loader.
**Pipeline**
- `.github/workflows/pages.yml` - builds with `mkdocs build --strict`
and deploys to GitHub Pages on pushes to `main` that touch docs.
**Content (migrated + trimmed from the wiki)**
- `index.md`, `getting-started.md`
- Use cases: `scenarios/` - analyze a crash dump, debug a remote target,
triage multiple dumps
- Reference: `reference/` - command-line options, tools, client
configuration
- `troubleshooting.md`
**Agent / authoring setup**
- Migrated `AGENTS.md` -> `CLAUDE.md` (concise, dap-dbgeng style).
- Added `.claude/rules/markdown.md` and
`.claude/rules/documentation.md`, plus `scripts/Format-Docs.ps1` to
enforce the typography rules (plain hyphens, no emojis).
**Housekeeping**
- README documentation links now point at the new site.
- `.gitignore` ignores `/site/`.
## Verification
- `mkdocs build --strict` - clean, all internal links resolve.
- `scripts/Format-Docs.ps1 -Check` - passes repo-wide (also fixed a
stray dash + emoji in CHANGELOG).
## One manual step
GitHub Pages is not enabled on the repo yet. After merge, set **Settings
-> Pages -> Build and deployment -> Source = GitHub Actions** (one time)
so `pages.yml` can publish to `https://svnscha.github.io/mcp-windbg/`.
Happy to enable it via API if you'd prefer.
## Notes / decisions
- Use-case pages chosen to match the product: crash dump, remote target,
triage. The wiki's separate per-client install pages are consolidated
into `reference/clients.md`.
- The wiki repo (`mcp-windbg.wiki`) is left untouched; we can archive or
redirect it once this is live.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>