- build.py: _TEMPLATE_COMPONENTS rewritten around the vet sample (53 kinds —
per-resource slices, jobs, worked appointment_reminder family, tests);
seed tokens dropped from the manifest ('sample: vet' instead)
- registry.py: get_app_component(kind) no longer renames item/example seeds;
prompts and tool docs updated to 'copy a slice and adapt'
- templates/README.md, 01_build_recipe, 40_ui_admin, wiki/03 updated off the
old seed scheme; repo inventory/config now exclude vet (docs move under
standards; react/vet itself is deleted in a later phase)
- regenerated MCP bundle, vendored templates, and site output
- templates/app now carries the vet server (parents/pets/treatments/vets/appointments)
- added domain/jobs slice with /jobs OpenAPI paths and Job schema (x- extensions)
- added pipelines/shared scaffold (loader, ports, registry) and the
appointment_reminder family; worker.py dispatches jobs by kind
- wired init.py, config.py worker knobs, .env.example, docker-compose worker
- unit tests for jobs routes, the pipeline family and worker dispatch (12 passing)
collect.py run: adds the vet reference app (TypeDoc lib site + doc-weaver
MCP bundle), picks up the refreshed react-openapi specExtensions module from
Phase 1, and re-renders the docs homepage.
Add react/vet (section: apps) serving its TypeDoc lib site and the
doc-weaver MCP bundle (docs/mcp, port 8013) alongside react-auth,
react-openapi and doc-weaver.
- build.py: vendor templates/client into mcp/templates/client with
client.json manifest (16 kinds); register drone-npm as a third CI shape
(types: pypi/npm/docker); root *.py stale doc numbers fixed
- registry.py: registry://client resource + list_client_components /
get_client_component / get_client_template tools; build prompt gains the
client scaffold step (docs://modules/ui_admin); compliance prompt covers
npm packages; drone docs describe all three shapes
- repos.json (+mcp): doc-weaver, react-auth, react-openapi (npm Type B,
package.json version source), vet (app Type C, VERSION)
- docs: 90_drone_pipelines gains Type B npm section; 91_versioning covers
package.json as a version source; 94_repository_inventory gains the npm
package table and services/apps Type C; lib index updated
Verified: bundle regen (24 modules, client 16, drone 3, repos 13); registry
client readers exercised against the vendored bundle.
Generalized from the vet reference client:
- @aetoskia/react-auth + @aetoskia/react-openapi from npm.aetoskia.com
(.npmrc), no local aliases
- generic Home (resource cards + live preview table), Header, Footer
- AppTheme/shared-theme with MUI v5 type shims
- VITE_API_BASE_URL / VITE_AUTH_BASE_URL env wiring
Verified: tsc --noEmit + vite build pass against built @aetoskia packages.
New wiki page documents the ten per-repo MCP servers (standards + libraries, ports 8001-8010) and per-client config for Claude Code, Codex, Antigravity, OpenCode, and PyCharm, each with linked localhost / mcp.aetoskia.com tabs.
Reflect rebuilt consumer wikis in the hub: doc-forge gains the MkDocs cross-kind link notes; openapi-first gains the codegen --template-style content. Purely cosmetic (toolchain escaping) and sitemap mtime deltas were left out.
The standards wiki links to the sibling library reference with ../lib/... paths. Add src/hooks.py and enable it in mkdocs.wiki.yml so those links climb to the repo root and resolve to /standards/lib/... under directory URLs.
Authenticate the quality-gate pip install with the private index URL (scheme-stripped AUTH_URL, --index-url/--extra-index-url) instead of the broken --extra-index-url form, and guard against missing PIP_* secrets. Also drop the fetch-tags inline comments. Regenerated the mcp copy from src.
- Remove the push-triggered build-and-deploy-site pipeline and every "site"
reference; Type B is now a single tag-triggered service pipeline
(service-docker.yaml).
- Inventory now covers packages + the auth-server service only (repos.json
11 -> 9; docs/mcp are no longer part of the standard).
- Versioning standard: reconcile [Unreleased] against the last tag before
promoting, and always show proposed entries to the user for approval.
- Update registry.py compliance/release text and list_repos types, build.py
component descriptions, and rebuild the MCP bundle + lib/wiki HTML.
Versioning standard now states services must read their VERSION (e.g. a build arg) rather than hardcoding it; the compliance prompt repeats it. build_bundle also bundles src/wiki/** as wiki_-prefixed modules (e.g. docs://modules/wiki_development_releasing), so the release runbook is reachable from the MCP. Bundle grows to 22 modules.
Versioning standard now documents the MR flow: bump pyproject.toml/VERSION and promote CHANGELOG in the MR (referencing the version/tag, not a commit id), merge/squash, then tag the resulting commit. Adds the agent-assisted tagging procedure (wait for the go-ahead, find the version-bump commit, tag only it, ask the user to push) to both the reference page and the releasing wiki runbook. Adds the repo inventory (src/repos.json -> mcp/repos.json), the registry://repos resource + list_repos tool, the 15_repository_inventory lib page, and two MCP prompts: compliance (remediate repos) and release (agent tagging).
Add lib page 11 (SemVer contract, pre-1.0 rule, tag==version invariant, Keep a Changelog), the releasing wiki runbook, and canonical release templates (CHANGELOG.md, VERSION). Vendor them into the MCP bundle as templates/release + release.json and expose registry://release with list/get tools. Add a changelog component to the app template. Enforce the tag<->version contract in both Drone shapes: Type A check-version and the backfill loop verify pyproject version; Type B adds a VERSION guard step.
Document the two `.drone.yml` shapes used across the org, derived from the
repos:
- Type A `python-lib.yaml`: build-and-publish-pypi + backfill-pypi-from-tags
- Type B `service-docker.yaml`: build-and-deploy-service + build-and-deploy-site
- add reference page `10_drone_pipelines`
- vendor `src/templates/drone/` into the MCP bundle (`drone.json`)
- expose `registry://drone` + `list_drone_templates` / `get_drone_template`
- wire `build.py` to vendor drone templates; rebuild nav/index (14 modules)
- serve the pinned auth-server OpenAPI contract as the standards MCP resource docs://spec (no auth-server MCP bundle)
- add Auth Integration recipe (14) and wire it into the registry, prompts, index, and nav
- un-defer Auth Server in the library registry (spec/recipe pointers)
- ship the opt-in template auth slice: interfaces/auth/ (placeholder + mergeable bearerAuth security.yaml) and AUTH_SERVER/JWT_SERVER env
- rebuild bundle (13 modules, 44 components); template stays authless by default
- collect.py: copy repo MCP bundles to ROOT/<name>/mcp (instead of ROOT/mcp/<name>); add nginx location guard to deny /<name>/mcp/
- config.py: bundle roots now point to <repo>/mcp and standards/mcp for static bundles
- Rename core.py -> mcp_server.py and update imports in main.py and registry.py
- Dockerfile: per-repo MCP COPYs under /app/<name>/mcp, drop blog copy; add ports 8008/8009 in .drone.yml
- Restore standards/mcp/libraries.json from git for registry server
- collect.py: when a kind points at the shared site root, copy only the
per-kind subdir (site/lib -> <repo>/lib) instead of the whole site, so
stray single-site build output never leaks into the hub
- Purge stale collected artifacts (404.html, assets/, search/, sitemaps,
objects.inv, duplicate mcp/) from every repo dir, matching the cleaned
source site/ roots
- Refresh collected output from source repos, incl. the khata-app app
- Remove the vendored Blog API docs (config.yml entry + blog/) and its card
Enables dagpipe wiki on the docs hub alongside lib and mcp, removes stale nested lib pages, and picks up regenerated GSDFC docstrings in the MCP bundle.