33This file is the self-contained engineering contract for the public CometAPI
44Python SDK repository. Treat this directory as the repository root.
55
6- ## Repository authority
6+ ## Repository authority and remote permissions
77
8- Repository-local source, tests, documentation, metadata, fixtures, and workflow
9- definitions may be changed and verified locally. The current milestone may use
10- private pull requests and credential-free GitHub Actions to complete the
11- remaining pre-visibility work. Changing repository visibility, configuring
12- secrets or environments, making live API requests, creating tags or releases,
13- publishing to PyPI, and changing registry settings remain outside the current
14- authorized pre-visibility scope.
8+ Repository documents define permitted workflows and safety boundaries; they do
9+ not grant standing permission to change local tracked content or remote state.
10+ Any push, pull-request creation or update, merge, comment, or other remote
11+ mutation requires explicit authorization in the current maintainer request.
12+ Without new explicit authorization, limit work to local read-only inspection or
13+ validation and do not create another pre-visibility closeout pull request.
14+
15+ Repository visibility, settings, branch or tag rules, Private Vulnerability
16+ Reporting, secrets, variables, environments, live API requests, tags, releases,
17+ PyPI operations, and other registry operations each require separate explicit
18+ authorization. Authorization for one action does not authorize another.
1519
1620A local build, mocked test, statically valid workflow, or private remote CI run
1721proves only its own evidence layer. Never invent or mock missing evidence.
1822
1923## Git branch lifecycle
2024
21- - Use a dedicated short-lived topic branch for each task. ` dev ` is the clean
22- local landing branch between tasks; do not commit task changes directly to
23- ` dev ` .
25+ - Start every authorized task from a clean worktree. Fetch ` origin ` , switch to
26+ local ` main ` , require ` main ` to be an ancestor of ` origin/main ` , and run
27+ ` git merge --ff-only origin/main ` . Require the worktree to remain clean and
28+ ` main ` to equal ` origin/main ` after the fast-forward.
29+ - If local ` dev ` does not exist, create it with ` git switch -c dev ` only while
30+ the synchronized, clean ` main ` is checked out. If local ` dev ` exists, require
31+ ` dev ` to be an ancestor of ` main ` , switch to ` dev ` , and run
32+ ` git merge --ff-only main ` . Require ` dev ` to equal ` main ` after either path.
33+ - Only after those startup checks pass may an authorized task create its
34+ dedicated short-lived topic branch from synchronized ` dev ` . Do not commit
35+ task changes directly to ` dev ` .
2436- Treat a topic branch lifecycle as closed only after its required pull-request
2537 checks pass and its squash merge is present on ` origin/main ` . Any alternate
2638 disposition requires explicit user authorization and must not advance ` dev `
2739 until the accepted commit is present on ` origin/main ` .
28- - With a clean worktree, fetch ` origin ` , switch to ` main ` , and fast-forward it
29- with ` git merge --ff-only origin/main ` . Require the worktree to remain clean
30- and ` main ` to equal ` origin/main ` before handling ` dev ` . If local ` dev `
31- exists, require it to be an ancestor of ` main ` , switch to it, and fast-forward
32- it with ` git merge --ff-only main ` ; if it does not exist, create it with
33- ` git switch -c dev ` only from that checked-out, clean, synchronized ` main ` .
34- Finish with ` dev ` checked out. Cleanup is complete only when the worktree is
35- clean and ` HEAD ` , local ` main ` , local ` dev ` , and ` origin/main ` resolve to the
36- same commit.
37- - Never reset, discard work, force-update refs, delete branches, or push ` dev ` .
38- If fetching fails, the worktree is dirty, ` main ` cannot fast-forward to
39- ` origin/main ` , an existing ` dev ` cannot fast-forward to ` main ` , or the four
40- final refs differ, stop and report the exact state instead of forcing
41- synchronization.
40+ - After merge and required verification, start from a clean worktree, fetch
41+ ` origin ` , switch to ` main ` , require it to be an ancestor of ` origin/main ` , and
42+ fast-forward it with ` git merge --ff-only origin/main ` . Require ` main ` to
43+ equal ` origin/main ` , require ` dev ` to be an ancestor of ` main ` , switch to
44+ ` dev ` , and fast-forward it with ` git merge --ff-only main ` . Finish on a clean
45+ ` dev ` with ` HEAD ` , local ` main ` , local ` dev ` , and ` origin/main ` all equal.
46+ - Any dirty worktree, fetch failure, ahead or divergent local branch, failed
47+ ancestry check, failed fast-forward, or final ref mismatch must fail closed.
48+ Never reset, rebase, discard work, force-update refs, delete or recreate an
49+ existing ` dev ` , or push ` dev ` to recover. Report the exact state instead.
4250
4351## Current milestone: Public Preview
4452
45- Private Remote Validation is complete. Prepare the private canonical repository
46- for a future explicitly authorized visibility change, and stop before changing
47- visibility. A session starting in this repository must be able to finish the
48- remaining pre-visibility work without instructions outside the repository.
53+ Public Preview pre-visibility complete; visibility change awaiting explicit authorization.
54+
55+ Private Remote Validation is complete. The sanitized first history, empty
56+ private repository creation, initial push, and pre-visibility closeout are
57+ completed historical steps and must not be repeated. The canonical repository
58+ remains private at the visibility authorization gate. Public Preview is not
59+ ready, and no pre-visibility implementation task remains.
4960
5061The accepted identity is:
5162
@@ -61,22 +72,22 @@ The accepted identity is:
6172| Support and conduct | ` support@cometapi.com ` |
6273| Security | ` https://github.com/cometapi-dev/cometapi-python/security/advisories/new ` |
6374
64- Before changing repository visibility:
75+ At the visibility authorization gate :
6576
66- 1 . Resolve or explicitly defer every dependency disposition that ` ROADMAP.md `
67- still records as unresolved; its pre-visibility dependency disposition table
68- is the durable source of truth.
77+ 1 . Treat the dependency dispositions recorded in ` ROADMAP.md ` as authoritative
78+ for the listed pull requests. Process newly opened dependency pull requests
79+ through normal maintenance only when a current maintainer request explicitly
80+ authorizes that work, without reopening completed dispositions.
69812 . Keep ` .github/CODEOWNERS ` absent until a real multi-maintainer model exists.
70823 . Keep scheduled and manually dispatched live smoke fail-closed behind
7183 ` LIVE_SMOKE_ENABLED=true ` , and keep ` RELEASE_PLEASE_ENABLED ` disabled through
7284 the initial manual alpha.
73- 4 . Run every local offline, package, self-containment, public-content, secret,
74- and workflow-static-validation gate, then deliver the pre-visibility changes
75- through a private pull request with successful credential-free CI.
76- 5 . Confirm the canonical repository is still private and stop. Visibility,
77- branch or tag rules, Private Vulnerability Reporting, secrets, protected
78- environments, Trusted Publishing, live API calls, tags, releases, and
79- publication require separate authorization after this stop point.
85+ 4 . Do not create another pre-visibility closeout pull request unless a current
86+ maintainer request explicitly authorizes a new, scoped change.
87+ 5 . Stop before changing visibility. After an explicitly authorized visibility
88+ change, repository rules, Private Vulnerability Reporting, protected
89+ environments, default-branch CI, and authorized protected live smoke must
90+ pass before Public Preview can be marked ready.
8091
8192## Repository independence
8293
@@ -226,7 +237,7 @@ committed.
226237 with shipped behavior. Use currently supported model IDs.
227238- All repository documentation is written in English.
228239
229- Before Public Preview, run
240+ Before marking Public Preview ready , run
230241` uv run python scripts/check_version.py --require-public-preview-docs ` . The
231242gate must report every detected violation and fail until canonical identity,
232243contacts, repository metadata, and durable public-facing content are complete.
0 commit comments