Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 14 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,10 +84,18 @@ active source of truth.
Use the versioned repository surfaces on `main` instead:

- `README.md` and `docs/` for public product and operator guidance
- `DISTRIBUTION.md` and `INTEGRATIONS.md` for root-level public boundary truth
- contracts, workflows, and generated references for executable truth
- current repository settings and branch protection for GitHub-side policy

Treat `.agents/` as local operator state, not as a committed planning system.
Repo-local `.agents/Conversations` or other scratch coordination notes may still
exist during a session, but they are local-only operator residue rather than a
committed planning contract.

Treat `.agents/` as local operator state, not as a committed planning system
that needs a mirrored TaskBoard update on `main`.
If `.agents/Tasks` is absent in a clean checkout, treat that as expected
repository state rather than as governance drift.

## Closed Dependabot Pull Requests

Expand All @@ -101,8 +109,13 @@ Use the following rule when describing them:
supports that grouping
- only call a PR later superseded when current `main` clearly carries the same
or a newer dependency state
- if current `main` still pins an older version, describe the PR as closed
audit history without claiming the proposal landed
- do not treat a closed PR by itself as proof that the proposed dependency
state landed
- maintainer comments on individual closed PRs should follow the same rule and
should say when a closure is only grouped audit history, duplicate audit
history, or non-landed audit history

## Atomic Commit Guidance

Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@

Movi is a review-first local file organizer and workbench for messy photos, screenshots, documents, and audio. It lets AI assist with the manifest first, then lets you inspect, label, and approve the plan before deterministic `apply` or `rollback` touches your files.

[Safe First Look](#safe-first-look) · [10-Second Tour](#10-second-tour) · [Good Fit / Not A Fit](#good-fit--not-a-fit) · [Public Proof](docs/public_proof.md) · [Docs](docs/index.md) · [Browser Surface](#browser-surface) · [Releases](https://github.com/xiaojiou176-open/movi-organizer/releases) · [Discussions](https://github.com/xiaojiou176-open/movi-organizer/discussions) · [Security](SECURITY.md) · [Movi MCP v1](docs/mcp.md) · [Codex Integration](docs/codex_mcp.md) · [Claude Code Integration](docs/claude_code_mcp.md) · [Developer Guide](docs/developer_guide.md)
[Safe First Look](#safe-first-look) · [10-Second Tour](#10-second-tour) · [Good Fit / Not A Fit](#good-fit--not-a-fit) · [Public Proof](docs/public_proof.md) · [Docs](docs/index.md) · [Distribution](DISTRIBUTION.md) · [Integrations](INTEGRATIONS.md) · [Browser Surface](#browser-surface) · [Releases](https://github.com/xiaojiou176-open/movi-organizer/releases) · [Discussions](https://github.com/xiaojiou176-open/movi-organizer/discussions) · [Security](SECURITY.md) · [Movi MCP v1](docs/mcp.md) · [Codex Integration](docs/codex_mcp.md) · [Claude Code Integration](docs/claude_code_mcp.md) · [Developer Guide](docs/developer_guide.md)

![Movi overview showing mixed files flowing into manifest review and organized output](docs/assets/storefront/hero-movi-overview.svg)

Movi is a **review-first local AI file organizer**. It turns a chaotic intake folder into a review queue, then into a reviewed manifest, and only then into safer file moves you can dry-run, audit, and roll back. The current shipped surface stays intentionally narrow: `Movi Review`, `Movi Rules`, `Movi Inbox`, `Movi Copilot v1`, and `Movi MCP v1` all describe real current surfaces, but they still stay inside one safety story instead of pretending Movi is an autonomous organizer.

Public maintenance posture: limited-maintenance open source.

Current proof posture: reproducible smoke-tier evidence with a live release trail, Pages front door, and repo-side safety gates. It is not public-grade headline proof yet, and the current proof routes are kept explicit in [Public Proof](docs/public_proof.md) instead of being buried in operator-only docs.
Current proof posture: reproducible smoke-tier evidence with a live release trail, Pages front door, and repo-side safety gates. It is not broad benchmark-grade proof yet, but the current front door already clears a truthful public-entry bar, and the proof routes stay explicit in [Public Proof](docs/public_proof.md) instead of being buried in operator-only docs.

## Why Movi Exists

Expand Down
8 changes: 8 additions & 0 deletions contracts/docs/docs_nav_registry.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,14 @@ docs:
- root-runtime-topology
- root-ci-governance-summary
command_smoke: false
- path: DISTRIBUTION.md
layer: human-authored
scope: strict
command_smoke: false
- path: INTEGRATIONS.md
layer: human-authored
scope: strict
command_smoke: false
- path: docs/usage.md
layer: fragment-rendered
scope: strict
Expand Down
2 changes: 2 additions & 0 deletions contracts/governance/public_readiness_policy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ required_repo_surface_files:
- THIRD_PARTY_NOTICES.md
- SECURITY.md
- CONTRIBUTING.md
- DISTRIBUTION.md
- INTEGRATIONS.md
- SUPPORT.md
- CODE_OF_CONDUCT.md
- .github/CODEOWNERS
Expand Down
2 changes: 2 additions & 0 deletions contracts/governance/public_surface.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ public_docs:
- THIRD_PARTY_NOTICES.md
- SECURITY.md
- CONTRIBUTING.md
- DISTRIBUTION.md
- INTEGRATIONS.md
- SUPPORT.md
- CODE_OF_CONDUCT.md
- docs/usage.md
Expand Down
4 changes: 4 additions & 0 deletions contracts/governance/root_allowlist.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ canonical_tracked_entries:
- CLAUDE.md
- CODE_OF_CONDUCT.md
- CONTRIBUTING.md
- DISTRIBUTION.md
- INTEGRATIONS.md
- LICENSE
- NOTICE
- README.md
Expand Down Expand Up @@ -58,6 +60,8 @@ entry_purposes:
CLAUDE.md: repo execution memory
CODE_OF_CONDUCT.md: public community behavior expectations
CONTRIBUTING.md: public contribution policy
DISTRIBUTION.md: public distribution boundary and current published-surface contract
INTEGRATIONS.md: public integration-fit boundary and current client-surface contract
LICENSE: repository license grant
NOTICE: public repository notice summary
README.md: public repo entry document
Expand Down
8 changes: 8 additions & 0 deletions contracts/governance/root_change_control.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,14 @@ entries:
owner: repo
change_class: public-doc
approval_rule: architecture-review
DISTRIBUTION.md:
owner: repo
change_class: public-doc
approval_rule: architecture-review
INTEGRATIONS.md:
owner: repo
change_class: public-doc
approval_rule: architecture-review
LICENSE:
owner: repo
change_class: legal
Expand Down
18 changes: 9 additions & 9 deletions docs/_generated/render_state.json
Original file line number Diff line number Diff line change
Expand Up @@ -58,14 +58,14 @@
"block_id": null,
"source_hashes": {
"contracts/governance/done_signal_policy.yaml": "16e2fc2add45a68406d6a6077ed7b912fe2406905bf1ff68e967bceeda4bd83c",
"contracts/governance/public_readiness_policy.yaml": "ae124e580936eb1f3f5b992ace40737b990f48aa729995f730240952438487d9",
"contracts/governance/public_readiness_policy.yaml": "1207163d53fb898d20faee2a65d66ee9f29fedd29115364497d9c5ec03c3a7eb",
"contracts/governance/required_checks_policy.yaml": "51f9e8cb17df93c3912ae719a6ba95b74f2c666b6b11c79e1728f7002fb3e3b3",
".github/workflows/ci.yml": "145d243beb087cd6a976d45e4455e0747ace3ee3ad9c77160b57fb17f75c63fe",
".github/workflows/pre-commit.yml": "ed0082256d36108f1bdb3d6c66f6f9805295a4f7f738465b0092d0b3fe0199ed",
".github/workflows/live-integration.yml": "87a1d413bc8d92d2103b5d4a6e19cfcb85fdb30e9e753b88a3267607a41d2b92",
".github/workflows/mutation-manual.yml": "c892aa745b913f37a4662e51ecf0c2013dc32faecd1c97d4a59f2d1e808fb101"
},
"output_hash": "1e9db2c2bcd9dc853fd5772bd1edabf7b910d9014dc7bc2cc78f5a835f83e588"
"output_hash": "774d8eaecbd42c0759da5b26cdfede0e5255f9e9d7c35b5d0e163ff9e58935c7"
},
{
"id": "root-web-api-routes",
Expand All @@ -76,7 +76,7 @@
"source_hashes": {
"contracts/api/web_api.openapi.yaml": "c97830844b65fd8f76cd23688187ca8648835d787d1819045882dea01e1d7b64"
},
"output_hash": "ac7ae956b9adc83bdebf65c60c15798a27259f5be04ce702d4d8bcd1d2d75843"
"output_hash": "0f570bc328a43eff72145d98195fe8a906244ad34388f46d0cfc9a50fefa6c70"
},
{
"id": "root-runtime-topology",
Expand All @@ -91,7 +91,7 @@
"package.json": "19ed161b16378601fc42d4baa05b7225fc57a47cfdee28a64131fd57d3cd1efc",
".env.example": "32a60792624cd36eb5992b34d9c67c6e6e2a0971a45f3a48370f3b0b720b0aa8"
},
"output_hash": "ac7ae956b9adc83bdebf65c60c15798a27259f5be04ce702d4d8bcd1d2d75843"
"output_hash": "0f570bc328a43eff72145d98195fe8a906244ad34388f46d0cfc9a50fefa6c70"
},
{
"id": "root-ci-governance-summary",
Expand All @@ -106,7 +106,7 @@
"contracts/governance/required_checks_policy.yaml": "51f9e8cb17df93c3912ae719a6ba95b74f2c666b6b11c79e1728f7002fb3e3b3",
"package.json": "19ed161b16378601fc42d4baa05b7225fc57a47cfdee28a64131fd57d3cd1efc"
},
"output_hash": "ac7ae956b9adc83bdebf65c60c15798a27259f5be04ce702d4d8bcd1d2d75843"
"output_hash": "0f570bc328a43eff72145d98195fe8a906244ad34388f46d0cfc9a50fefa6c70"
},
{
"id": "root-release-identity",
Expand All @@ -117,7 +117,7 @@
"source_hashes": {
"pyproject.toml": "d12c2c415c3900d81c888e91d3a8ec1af88af96a701c6de801c37a1e52b4a495"
},
"output_hash": "ac7ae956b9adc83bdebf65c60c15798a27259f5be04ce702d4d8bcd1d2d75843"
"output_hash": "0f570bc328a43eff72145d98195fe8a906244ad34388f46d0cfc9a50fefa6c70"
},
{
"id": "script-readme-web-api-routes",
Expand Down Expand Up @@ -179,7 +179,7 @@
"block_id": "script-readme-governance-truth",
"source_hashes": {
"contracts/governance/done_signal_policy.yaml": "16e2fc2add45a68406d6a6077ed7b912fe2406905bf1ff68e967bceeda4bd83c",
"contracts/governance/public_readiness_policy.yaml": "ae124e580936eb1f3f5b992ace40737b990f48aa729995f730240952438487d9",
"contracts/governance/public_readiness_policy.yaml": "1207163d53fb898d20faee2a65d66ee9f29fedd29115364497d9c5ec03c3a7eb",
"contracts/governance/required_checks_policy.yaml": "51f9e8cb17df93c3912ae719a6ba95b74f2c666b6b11c79e1728f7002fb3e3b3",
".github/workflows/ci.yml": "145d243beb087cd6a976d45e4455e0747ace3ee3ad9c77160b57fb17f75c63fe",
".github/workflows/pre-commit.yml": "ed0082256d36108f1bdb3d6c66f6f9805295a4f7f738465b0092d0b3fe0199ed",
Expand Down Expand Up @@ -222,7 +222,7 @@
"block_id": "architecture-governance-truth",
"source_hashes": {
"contracts/governance/done_signal_policy.yaml": "16e2fc2add45a68406d6a6077ed7b912fe2406905bf1ff68e967bceeda4bd83c",
"contracts/governance/public_readiness_policy.yaml": "ae124e580936eb1f3f5b992ace40737b990f48aa729995f730240952438487d9",
"contracts/governance/public_readiness_policy.yaml": "1207163d53fb898d20faee2a65d66ee9f29fedd29115364497d9c5ec03c3a7eb",
"contracts/governance/required_checks_policy.yaml": "51f9e8cb17df93c3912ae719a6ba95b74f2c666b6b11c79e1728f7002fb3e3b3",
".github/workflows/ci.yml": "145d243beb087cd6a976d45e4455e0747ace3ee3ad9c77160b57fb17f75c63fe",
".github/workflows/pre-commit.yml": "ed0082256d36108f1bdb3d6c66f6f9805295a4f7f738465b0092d0b3fe0199ed",
Expand All @@ -239,7 +239,7 @@
"block_id": "open-source-platform-truth",
"source_hashes": {
"contracts/governance/done_signal_policy.yaml": "16e2fc2add45a68406d6a6077ed7b912fe2406905bf1ff68e967bceeda4bd83c",
"contracts/governance/public_readiness_policy.yaml": "ae124e580936eb1f3f5b992ace40737b990f48aa729995f730240952438487d9",
"contracts/governance/public_readiness_policy.yaml": "1207163d53fb898d20faee2a65d66ee9f29fedd29115364497d9c5ec03c3a7eb",
"contracts/governance/required_checks_policy.yaml": "51f9e8cb17df93c3912ae719a6ba95b74f2c666b6b11c79e1728f7002fb3e3b3",
".github/workflows/ci.yml": "145d243beb087cd6a976d45e4455e0747ace3ee3ad9c77160b57fb17f75c63fe",
".github/workflows/pre-commit.yml": "ed0082256d36108f1bdb3d6c66f6f9805295a4f7f738465b0092d0b3fe0199ed",
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/governance_truth.generated.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
- **Repo public readiness gate**: `bash tooling/gates/public_readiness_gate.sh repo`
- **Release public readiness gate**: `bash tooling/gates/public_readiness_gate.sh release`
- **Platform alignment gate**: `bash tooling/gates/platform_alignment_gate.sh`
- **Required repo surface files**: `21`
- **Required repo surface files**: `23`
- **Required package scripts**: `5`
- **Release-mode requires tracked public files**: `yes`
- **Release-mode requires public repo**: `yes`
Expand Down
Loading