A member whose account has not accepted the terms in force now gets one dialog on the action they attempted instead of a dead-end refusal. The client handler is the single TermsGate, wired into every Http POST helper so the four optimistic controllers cannot swallow the gate into an error flash, and the original request is replayed once the acceptance is recorded. Reading the site and deleting an account stay unblocked. apple.md is the source brief the compliance research documents reference. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1.5 KiB
1.5 KiB
description, argument-hint, allowed-tools
| description | argument-hint | allowed-tools |
|---|---|---|
| Scaffold a new prose docs page - create the template under templates/docs/ and register it in routers/docs/pages.py, then validate. | <slug> "<title>" [section] [admin] | Read, Grep, Edit, Write, Bash(python *) |
Add a new prose docs page: $ARGUMENTS
Follow the docs convention exactly (confirm against devplacepy/routers/docs/pages.py and devplacepy/routers/docs/views.py first):
- Create
devplacepy/templates/docs/<slug>.htmlas a prose page: one<div class="docs-content" data-render> ... </div>containing GitHub-flavored markdown. The page is rendered server-side. Any example component markup INSIDE the data-render block must be HTML-escaped (<dp-...>); a live demo, if any, goes in a SEPARATE block OUTSIDE the data-render div with its own<script type="module">. - Register it in
DOCS_PAGESindevplacepy/routers/docs/pages.py:{"slug": "<slug>", "title": "<title>", "kind": "prose", "section": SECTION_*}. Add"admin": Truefor an admin-only page. If a new section is needed, add aSECTION_*constant and place it in the correctAUDIENCESgroup. - Write accurate, professional content - confirm every factual claim against the source. No em-dashes, no AI disclaimers, dates as DD/MM/YYYY.
- Validate: check the new template for tag and
{% %}balance andpages.pywithpython -m py_compile+pyflakes, runpython -c "from devplacepy.main import app", and confirm the slug is registered with no duplicate.