Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
f5e40a1
test(docs): define maintenance and hyperlink reconciliation RED
seonghobae Aug 10, 2026
94b401b
docs(agent): make premature-stop recovery executable
seonghobae Aug 10, 2026
89203e7
docs(agent): bind user redirection to continued execution
seonghobae Aug 10, 2026
f64ec18
docs(index): expose whole-conversation reassessment
seonghobae Aug 10, 2026
3a53f3e
docs(assessment): re-evaluate whole-conversation baseline
seonghobae Aug 10, 2026
829ce6b
docs(adr): accept protected DOCX hyperlink decision
seonghobae Aug 10, 2026
399aee7
docs(adr): index accepted hyperlink decision
seonghobae Aug 10, 2026
34c7a2f
docs(fitness): reconcile protected hyperlinks and release operations
seonghobae Aug 10, 2026
5f1eaf7
docs(traceability): bind protected DOCX hyperlinks
seonghobae Aug 10, 2026
7260e46
docs(assessment): separate hyperlink maturity from release notes
seonghobae Aug 10, 2026
eeafee2
test(docs): bind release-note handoff to issue 118
seonghobae Aug 10, 2026
65b03d6
docs(assessment): reconcile the current protected release candidate
seonghobae Aug 10, 2026
35d2d78
fix(test): match current assessment status and release metadata
seonghobae Aug 10, 2026
0643816
test(docs): preserve ADR quality requirements
seonghobae Aug 10, 2026
8ef8334
fix(docs): preserve ADR quality requirements
seonghobae Aug 10, 2026
6016c2d
Merge branch 'main' into docs/reconcile-maintenance-release-hyperlink…
opencode-agent[bot] Aug 10, 2026
da8d4d4
test(docs): bind premature-stop recovery semantics
seonghobae Aug 10, 2026
967721e
test(adr): enforce quality sections across detailed records
seonghobae Aug 10, 2026
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
10 changes: 9 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,15 @@ Do not infer shipped behavior from conversation history, PR bodies, model output

When an external scheduler or autonomous maintainer is operating on Inkspan, repository work is **work-conserving**: after every mutation, proof, merge, closure, review/check observation, or defer decision, select the next highest-value safe Inkspan action while practical execution budget remains. A blocked PR blocks only that lane; queued CI, reviewer latency, provider cooldown, a read-only dependency, or missing approval must not freeze unrelated work.

A status report, prompt update, documentation assessment, green check, PR creation, review request, or one completed product slice is an intermediate result rather than repository completion while another safe action exists. Before ending an autonomous run, re-scan open PRs/issues, protected `main`, changed branches, reviews/checks/security findings, documentation fitness, release evidence, and buyer-visible gaps; continue if any executable item remains.
A status report, prompt update, documentation assessment, green check, PR creation, review request, or one completed product slice is an intermediate result rather than repository completion while another safe action exists. Before ending an autonomous run, perform two fresh whole-repository sweeps across open PRs/issues, protected `main`, changed branches, reviews/checks/security findings, documentation fitness, release evidence, and buyer-visible gaps. If either sweep finds an executable item, execute it and reset the two-sweep count.

### User-redirection and scheduler-control incident rule

If the user says that work stopped early, that other work remained, or that the prompt must be updated because execution ended prematurely, treat that statement as a **scheduler-control incident** rather than a request for another status recap. A prompt edit, inventory, documentation-only change, PR creation, review request, queued check, or local artifact receives zero completion credit.

After repairing the control instruction when needed, immediately rebuild the live Inkspan queue and continue repository execution in the same invocation. When safe work exists, complete at least **two materially distinct executable repository actions** before considering termination. If exactly one safe action exists, execute it and then prove through a fresh queue rebuild that every other lane is currently non-actionable under the writer lease, dependency order, repository policy, and safety constraints.

When a generic scheduled-task error or repeated missed run suggests prompt-size or control-plane fragility, keep detailed product truth in the canonical GitHub documentation graph and simplify the external prompt instead of appending historical snapshots. Scheduler failure is local operational debt; it is never evidence that Inkspan product work is complete.

The external scheduler remains the execution authority for cadence and run continuation. These repository instructions define Inkspan-specific writer, evidence, product, and safety discipline only; they do not make scheduling or autonomous orchestration an Inkspan runtime capability.

Expand Down
10 changes: 9 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,15 @@ A queued, pending, cancelled, skipped-required, stale-head, predecessor-head, st

When an external scheduler or autonomous maintainer drives Inkspan work, execution is **work-conserving**. After each mutation, proof, merge, closure, review/check observation, or defer decision, choose the next highest-value safe Inkspan item while practical execution budget remains. A blocked PR blocks only that lane; do not let queued CI, reviewer latency, provider cooldown, a read-only dependency, or missing approval freeze unrelated source, documentation, operability, or product work.

Do not use a status report, prompt update, documentation assessment, green check, PR creation, review request, or one completed product slice as a stopping condition while another safe action exists. Before ending an autonomous run, re-scan open PRs/issues, protected `main`, changed branches, review/check/security evidence, canonical-document fitness, release readiness, and buyer-visible gaps; continue when an executable item remains.
Do not use a status report, prompt update, documentation assessment, green check, PR creation, review request, or one completed product slice as a stopping condition while another safe action exists. Before ending an autonomous run, perform two fresh whole-repository sweeps across open PRs/issues, protected `main`, changed branches, review/check/security evidence, canonical-document fitness, release readiness, and buyer-visible gaps. If either sweep finds an executable item, execute it and reset the two-sweep count.

### Premature-stop recovery

When the user says that execution stopped early, that other work remained, or that the prompt must be updated because work was left behind, treat the statement as a **scheduler-control incident**. Do not answer it with another inventory or status recap. A prompt update, documentation-only change, PR creation, review request, queued check, or local artifact receives zero completion credit.

Repair the control instruction only when necessary, then rebuild the live Inkspan queue and continue repository execution in the same invocation. When safe work exists, complete at least **two materially distinct executable repository actions** before considering termination. If exactly one safe action exists, perform it and use a fresh queue rebuild to prove that every other lane is currently non-actionable under the writer lease, dependency order, repository policy, and safety constraints.

If repeated generic scheduled-task errors suggest prompt-size or control-plane fragility, move durable product detail into the canonical GitHub graph and simplify the external prompt instead of appending incident history. Scheduler failure is local operational debt, not Inkspan product completion.

The external scheduler remains the execution authority for cadence and continuation. This file constrains repository-specific writer/evidence/product/safety behavior and does not make scheduling or autonomous orchestration part of Inkspan runtime architecture.

Expand Down
9 changes: 5 additions & 4 deletions docs/DOCUMENTATION_FITNESS.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,25 +60,26 @@ Document fitness and implementation maturity are independent. A `present_current
| DOCX bounded rich-text runs | ADR 0023, Office schema/renderer/tests and doctoring | `present_current` | `implemented_on_protected_main` | Ordered bold/italic/underline runs preserve common inline fidelity under one bounded deterministic contract. |
| DOCX bounded paragraph alignment | ADR 0024, Office schema/renderer/tests, Office guidance and doctoring | `present_current` | `implemented_on_protected_main` | `paragraph` and `rich_paragraph` preserve explicit left/center/right/justify alignment while omission retains inherited/default behavior. |
| DOCX bounded heading alignment | ADR 0025, Office schema/renderer/tests, Office guidance and doctoring | `present_current` | `implemented_on_protected_main` | `heading` preserves the same exact left/center/right/justify contract through the shared paragraph-alignment authority while omission retains heading-style/default behavior. |
| DOCX bounded external hyperlinks | ADR 0026, Office schema/renderer/tests, Office guidance and doctoring | `present_current` | `implemented_on_protected_main` | Optional rich-run hyperlinks preserve exact accepted external HTTP(S) targets and existing run emphasis through deterministic relationship-backed OOXML without network, credential, local-file, tenant, persistence, or destination-trust authority. |
| THREAT_MODEL | `docs/THREAT_MODEL.md` | `present_current` | Covers current trust boundaries and explicitly proposed extensions | Clipboard, evidence, Office, SSR/form, Yjs, model, host-authority and supply-chain threats are reconstructable. |
| TEST_STRATEGY | `docs/TEST_STRATEGY.md` | `present_current` | Protected deterministic/browser/Office evidence plus active feature-specific test contracts | Test authority, exact source-head evidence and claim limits are explicit rather than inferred from CI badges. |
| TEST_STRATEGY | `docs/TEST_STRATEGY.md` | `present_current` | Protected deterministic/browser/Office evidence plus feature-specific test contracts | Test authority, exact source-head evidence and claim limits are explicit rather than inferred from CI badges. |
| OPERABILITY | `docs/OPERABILITY.md` | `present_current` | Current product responsibilities plus protected browser/release recovery boundaries | Conflict, collaboration, conversion, registry partial-publication recovery and rollback ownership are explicit. |
| Release / rollback / provenance | TRD, OPERABILITY and release ADRs | `present_current` | `implemented_on_protected_main` gates plus explicitly labeled future hardening | Exact-source release authority, stale-evidence rejection and rollback are reconstructable. |
| TRACEABILITY | `docs/TRACEABILITY.md` | `present_current` | Protected requirements/standards/evidence mapping | Acquisition reviewers can distinguish protected evidence from active or planned work. |
| Contributor/agent authority | `AGENTS.md`, `CLAUDE.md`, `docs/README.md` | `present_current` | Protected-main-first decision discipline | Agents are directed back to the same canonical graph rather than parallel private memory. |
| Autonomous maintenance governance | `AGENTS.md`, `CLAUDE.md` plus the external scheduler | `present_current` | `out_of_scope` as Inkspan runtime behavior | Work-conserving execution, lane-local waiting and external scheduler authority are reconstructable without pretending automation is an Inkspan API. |
| Autonomous maintenance governance | `AGENTS.md`, `CLAUDE.md` plus the external scheduler | `present_current` | `out_of_scope` as Inkspan runtime behavior | Work-conserving execution, user-redirection incident recovery, lane-local waiting and external scheduler authority are reconstructable without pretending automation is an Inkspan API. |

## Conversation-to-GitHub reconciliation

The canonical graph retains durable product decisions from the project conversation only when they agree with live implementation or are explicitly labeled target/active architecture. The reviewed baseline covers Markdown/HTML WYSIWYG authoring; strict link/image/SafeClipboard boundaries; local/offline fonts; deterministic Markdown/HTML/email/plain-text conversion; independently reusable Office rendering; provider-neutral Yjs collaboration with host-owned provider/persistence authority; bounded autosave lifecycle observation; SSR/native-form serialization; accessibility metadata; revision-scoped evidence and W3C text-position selectors; naruon modular composition; model assistance as an untrusted proposal; host-owned transport/authentication/authorization/tenant isolation/persistence/credentials/migration/retention/deployment/durable audit/model policy; cross-engine browser assurance; OIDC trusted publishing; framework-neutral Markdown packaging; CSS paged-media presentation; and bounded DOCX figure/rich-text/paragraph/heading alignment fidelity.
The canonical graph retains durable product decisions from the project conversation only when they agree with live implementation or are explicitly labeled target/active architecture. The reviewed baseline covers Markdown/HTML WYSIWYG authoring; strict link/image/SafeClipboard boundaries; local/offline fonts; deterministic Markdown/HTML/email/plain-text conversion; independently reusable Office rendering; provider-neutral Yjs collaboration with host-owned provider/persistence authority; bounded autosave lifecycle observation; SSR/native-form serialization; accessibility metadata; revision-scoped evidence and W3C text-position selectors; naruon modular composition; model assistance as an untrusted proposal; host-owned transport/authentication/authorization/tenant isolation/persistence/credentials/migration/retention/deployment/durable audit/model policy; cross-engine browser assurance; OIDC trusted publishing; framework-neutral Markdown packaging; CSS paged-media presentation; and bounded DOCX figure/rich-text/paragraph/heading/hyperlink fidelity.

Autonomous commercial-maintenance scheduling and no-early-stop execution are control-plane governance, not shipped Inkspan runtime capability. The external scheduler owns cadence and continuation. Where older conversation, issue, PR body, or plan conflicts with protected `main`, it is historical. Where a requirement is only on an active PR, this documentation uses `implemented_on_active_pr` and never presents it as shipped.

## Remaining documentation and product gaps

The documentation pack is substantially complete for acquisition review, but repository closure is not documentation closure:

1. The unified OIDC release workflow is source-integrated, but issue #118 remains open because the next stable registry release still requires one coherent npm/Office/tag version plus live npm/PyPI publication and post-publication digest verification.
1. The protected manifests now agree at `0.6.0`, while registry operational acceptance remains open under issue #118 because the exact protected release still needs its tag/GitHub Release, live npm/PyPI Trusted Publisher execution, and public artifact digest verification.
2. Future protected-source changes must continue to reconcile PRD/TRD/Architecture/ADR/UML/DATA_MODEL/security/test/operability/traceability semantics rather than treating this baseline as permanently complete.
3. Documentation becoming mergeable, green, or protected-merged is never a reason for the commercial loop to stop; the next safe product, release, security, accessibility, package, Office-fidelity, or interoperability lane continues.

Expand Down
5 changes: 4 additions & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ This directory is the discoverable index for Inkspan's product, technical, secur
| [`../ARCHITECTURE.md`](../ARCHITECTURE.md) | Current protected-main implementation architecture and bounded-context ownership |
| [`../SECURITY.md`](../SECURITY.md) | Protected-main private vulnerability reporting, supported security lines, coordinated disclosure, and claim limits |
| [`DOCUMENTATION_FITNESS.md`](DOCUMENTATION_FITNESS.md) | Acquisition completeness matrix, implementation maturity, deliberate non-applicability and remaining canonical gaps |
| [`assessments/2026-08-10-conversation-documentation-reassessment.md`](assessments/2026-08-10-conversation-documentation-reassessment.md) | Dated whole-conversation reassessment, protected/operational deltas, and scheduler-control remediation |
| [`PRD.md`](PRD.md) | Product users, jobs, buyer outcomes, non-goals, acceptance and claim boundaries |
| [`TRD.md`](TRD.md) | Technical invariants, runtime boundaries, failure semantics and release evidence |
| [`CONTRACTS.md`](CONTRACTS.md) | Public package/API/event/schema/plugin/collaboration and host-integration contracts |
Expand All @@ -27,6 +28,8 @@ This directory is the discoverable index for Inkspan's product, technical, secur

Root `SECURITY.md` is now implemented on protected `main` and remains the normative reporting/disclosure policy. ADR 0017 records the durable architecture/process decision and ownership/claim boundaries without duplicating policy prose. `CHANGELOG.md` records shipped/reviewable change history, while `AGENTS.md` and `CLAUDE.md` point contributors back to this canonical graph rather than becoming parallel architecture specifications.

Dated reassessments capture a reviewed source generation and its active or operational deltas without placing mutable workflow-run identities into timeless architecture. They do not override protected `main`, accepted ADRs, or current exact-head evidence.

## Status discipline

Use these terms consistently:
Expand All @@ -51,4 +54,4 @@ Inkspan owns deterministic editor/conversion behavior, versioned document/eviden

A material contract change should update the smallest affected set of PRD/TRD/CONTRACTS/Architecture/ADR/UML/data-model/security/test/operability/traceability records and corresponding machine-checkable documentation contracts. If a document is unaffected, preserve it rather than performing churn solely for consistency optics.

Stable architectural documents should avoid embedding transient PR heads, workflow run IDs, or temporary provider states. Put dated operational evidence in bounded doctoring/evidence records instead.
Stable architectural documents should avoid embedding transient PR heads, workflow run IDs, or temporary provider states. Put dated operational evidence in bounded doctoring/evidence records instead.
Loading
Loading