docs: isolate current DocForge2 documentation
This commit is contained in:
parent
f9a05f868e
commit
377cca0531
7 changed files with 98 additions and 1274 deletions
|
|
@ -1,8 +1,4 @@
|
|||
# Canonical application decision
|
||||
|
||||
**Status:** Superseded by the DocForge 0.13 hash-bound application contract.
|
||||
|
||||
## Decision
|
||||
# Canonical application
|
||||
|
||||
DocForge may apply one isolated changeset to canonical project sources through an explicit,
|
||||
project-bound canonical applier. Application is available through both CLI and MCP. It is never an
|
||||
|
|
@ -31,17 +27,14 @@ checks the derived index and regenerates declared render views.
|
|||
Application does not run project commands, tests, shell operations, Git, deployment, publication,
|
||||
or arbitrary renderers. Those remain with the owning project workflow.
|
||||
|
||||
## Why the earlier decision changed
|
||||
## Safety contract
|
||||
|
||||
The earlier DFG-9 decision preserved manual integration because there was not yet repeated evidence
|
||||
for canonical application. Later multi-project use produced recurring proposal application work,
|
||||
stale-index round trips, and an explicit user requirement for faster approved integration. The new
|
||||
contract addresses the original safety concerns with:
|
||||
The application boundary requires:
|
||||
|
||||
- exact changeset-hash approval;
|
||||
- startup-bound applier identity;
|
||||
- project-owned serializers for custom adapters;
|
||||
- canonical path and symlink confinement;
|
||||
- canonical path and symbolic-link confinement;
|
||||
- rollback and semantic round-trip verification;
|
||||
- deterministic derived-state refresh; and
|
||||
- complete separation from Git, builds, deployment, and publication.
|
||||
|
|
@ -1,133 +0,0 @@
|
|||
# DocForge2 Milestone 0 closeout
|
||||
|
||||
Milestone 0 establishes the public DocForge2 successor without changing the supported `docforge`
|
||||
product identity or the legacy DocForge repository.
|
||||
|
||||
## Repository state
|
||||
|
||||
- Public successor: <https://repo.andraxion.net/administrator/DocForge2>
|
||||
- Successor default branch: `main`
|
||||
- Successor development branches: `main` and `dev`
|
||||
- Local `origin`: `forgejo@repo.andraxion.net:administrator/DocForge2.git`
|
||||
- Local `legacy`: `forgejo@repo.andraxion.net:administrator/DocForge.git`
|
||||
- Legacy repository: private, nonempty, unarchived, and defaulted to `main`
|
||||
- Existing annotated tag: `v1.0.0`
|
||||
|
||||
`main` is the last completely verified milestone. `dev` is the integration branch for the next
|
||||
explicitly activated milestone and begins at the same commit. Historical development branch names
|
||||
remain in the legacy repository as v1 evidence; they are not replicated as active DocForge2
|
||||
branches.
|
||||
|
||||
No tag, release, release announcement, or production integration change was made.
|
||||
|
||||
## Preserved lineage
|
||||
|
||||
The migration began from the advanced
|
||||
`codex/language-agnostic-onboarding` tip
|
||||
`bb13258861175aafd0e6c03c1a5235cbaddf6db2`, nine linear commits beyond the legacy `main`.
|
||||
|
||||
The original seven-file no-AST working patch had SHA-256:
|
||||
|
||||
```text
|
||||
8cd10759c232cd4cf8c5eb024e31bbfed355e0be31fc3e732e1567c1a19a887e
|
||||
```
|
||||
|
||||
It was preserved in commit `6c05607` before other integration. The independent local-only adapter
|
||||
lifecycle commit `1ef76f0271bb339bc0d7eeb62f996d6d680548cb` was retained unchanged and merged by
|
||||
`15a9130`. The resulting successor `main` contains every commit that was reachable from any local
|
||||
ref before migration. No rebase, reset, squash, shallow seed, or older-remote seed was used.
|
||||
|
||||
A verified pre-migration bundle was written outside the repository:
|
||||
|
||||
```text
|
||||
/tmp/DocForge2-milestone0-candidate-20260729.bundle
|
||||
SHA-256 6cccd4ae2a65fa2d81e324e4592bee488b111942a496fb85f7ac6b8bd319ea2d
|
||||
```
|
||||
|
||||
## Legacy integrity
|
||||
|
||||
Before and after the successor push, the legacy repository advertised these exact heads:
|
||||
|
||||
```text
|
||||
Dev-Rewrite 73165c9f511485ea397aaa00c5e0047bd3e635e2
|
||||
DocForge-Dev 82b3b905212e7949c0a440879f3bf866197c3927
|
||||
codex/adapter-authoring-docs 7bc2ac1e3f7f9cf23ec4dcad108f9bb59978ca73
|
||||
codex/language-agnostic-onboarding bb13258861175aafd0e6c03c1a5235cbaddf6db2
|
||||
main 9fcafc290c5b5ee9cb83c4c3b2ff600f75210c8e
|
||||
```
|
||||
|
||||
The annotated `v1.0.0` tag object remained
|
||||
`2d7d306a37da89f1c860c7f0be161c45386acf61`, pointing to
|
||||
`593c173b453236a6872d0a4e88e7a51a67a21cde`.
|
||||
|
||||
No push, deletion, visibility change, archive operation, or default-branch change was performed
|
||||
against `legacy`.
|
||||
|
||||
## Compatibility and correctness
|
||||
|
||||
The stable guarantees are recorded in
|
||||
[`COMPATIBILITY.md`](COMPATIBILITY.md). The dedicated contract gate verifies:
|
||||
|
||||
- Distribution, package, imports, and three executable names.
|
||||
- CLI command and MCP tool names.
|
||||
- Published JSON schemas and representative runtime envelopes.
|
||||
- One-method `load_projection()` adapters.
|
||||
- Optional incremental behavior and full-projection equivalence.
|
||||
- Canonical JSON changeset hashing.
|
||||
- Complete no-AST behavior, including pre-existing Logic, viewer, and application-refresh paths.
|
||||
|
||||
The no-AST policy does not claim to inspect arbitrary adapter internals. It enforces the owner-bound
|
||||
policy at Logic publication and retrieval surfaces while preserving complete-projection and
|
||||
genuinely non-AST incremental adapters.
|
||||
|
||||
## Security and publication checks
|
||||
|
||||
Gitleaks 8.30.1 scanned reachable Git history and an exact archive of the candidate tree with full
|
||||
redaction. Both scans reported zero findings. `git fsck --full` passed. A broader filename and
|
||||
credential-pattern audit also found no high-confidence matches.
|
||||
|
||||
Forgejo repository creation used one timestamped short-lived administrator token. Forgejo accepted
|
||||
it for repository creation but returned HTTP 401 when it attempted self-deletion. The exact
|
||||
task-created token row was then validated by ID, owner, and unique name, deleted in one SQLite
|
||||
transaction, and rechecked. Zero matching temporary token rows remain.
|
||||
|
||||
The package metadata declares MIT, but the repository has no tracked standalone `LICENSE`,
|
||||
`COPYING`, or `NOTICE` file. Milestone 0 records that publication weakness without inventing or
|
||||
changing legal terms.
|
||||
|
||||
## Validation and fresh-clone proof
|
||||
|
||||
The repository-native aggregate gate is:
|
||||
|
||||
```bash
|
||||
make gate
|
||||
```
|
||||
|
||||
It passed in the working tree and in an anonymous HTTPS clone of the public successor. The
|
||||
fresh-clone proof:
|
||||
|
||||
- Selected the expected `main` commit through the public default branch.
|
||||
- Passed `git fsck --full`.
|
||||
- Recreated the Python virtual environment from `uv.lock`.
|
||||
- Recreated JavaScript dependencies with `npm ci`, with zero reported vulnerabilities.
|
||||
- Passed Ruff formatting and lint.
|
||||
- Passed HTML, rendered-manual HTML, CSS, and JavaScript lint.
|
||||
- Passed Pyright with zero diagnostics.
|
||||
- Passed Python compilation.
|
||||
- Passed 8 public-contract tests and 42 schema subtests.
|
||||
- Passed the complete 95-test and 44-subtest warning-strict suite.
|
||||
- Passed lock and dependency-tree checks.
|
||||
- Built the wheel and source distribution.
|
||||
- Passed the disposable benchmark smoke run.
|
||||
- Remained clean after validation.
|
||||
|
||||
The maintained performance evidence and known gaps are recorded in
|
||||
[`MILESTONE_0_BASELINE.md`](MILESTONE_0_BASELINE.md) and
|
||||
[`benchmarks/milestone0-2026-07-29.json`](../benchmarks/milestone0-2026-07-29.json).
|
||||
|
||||
## Scope confirmation
|
||||
|
||||
Milestone 0 made no speculative storage rewrite and introduced no self-hosting dependency.
|
||||
WorldForge and ScrapeStation were not read as benchmark fixtures or changed. No production MCP
|
||||
integration was repointed. `ManualRenderPlan`, `GraphViewPlan`, and a portable graph renderer remain
|
||||
later-milestone direction, not claimed implementation.
|
||||
Loading…
Add table
Add a link
Reference in a new issue