-
-
Notifications
You must be signed in to change notification settings - Fork 0
docs: separate precision suite roles and ForthWall safety #72
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
08b228a
0fdf36f
92a1c72
cb83bdc
8421703
3c73438
bbd1f08
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -20,17 +20,58 @@ This project must declare **MPL-2.0-or-later** for platform/tooling compatibilit | |
|
|
||
| Philosophy: **Palimpsest**. The MPL-2.0 (PMPL) text is provided in `license/MPL-2.0.txt`, and the canonical source is the palimpsest-license repository. | ||
|
|
||
| Cross-platform document editor with format tabs (TXT/MD/ADOC/DJOT/ORG/RST/TYP). Gossamer GUI + Ada TUI. Graph visualization, OCR, TTS/STT, Nickel pipelines. | ||
| DocMatrix is multi-format document conversion and precision infrastructure for | ||
| the wider document suite. The tabbed multi-format viewer/editor is the separate | ||
| *Formatrix Docs* project. GUI, TUI, graph, and editor claims in copied or | ||
| ecosystem-level documents must not be attributed to DocMatrix itself. | ||
|
|
||
| ForthWall is a proposed capability-bounded Forth execution layer for critical | ||
| precision operations. It is not currently implemented or proved. | ||
|
|
||
| == Features | ||
|
|
||
| * *Format Tabs* - View and edit the same document in multiple markup formats | ||
| * *Unified AST* - Lossless conversion between formats | ||
| * *GUI* - Gossamer with AffineScript frontend | ||
| * *TUI* - Ada with AdaCurses for terminal usage | ||
| * *Graph Visualization* - ArangoDB for document relationships | ||
| * *Accessibility* - OCR, TTS, STT support | ||
| * *Pipelines* - Nickel-based import/export transformations | ||
| * *Current core* - Parse and render supported formats through a unified AST | ||
| * *Current interfaces* - Rust conversion APIs plus a C ABI/FFI surface | ||
| * *Suite boundary* - Formatrix Docs owns the tabbed viewer/editor experience | ||
| * *Critical-mode proposal* - ForthWall rules bounded to declared inputs, | ||
| approved document operations, and independently verified outputs | ||
|
|
||
| == Precision document suite | ||
|
|
||
| DocMatrix is designed to cooperate with two distinct user-facing tools: | ||
|
|
||
| * https://github.com/hyperpolymath/formatrix-docs[Formatrix Docs] — view one | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🟡 MEDIUM RISK This URL is missing the double slashes after the protocol (should be
Owner
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. please resolve this issue |
||
| logical document through tabbed TXT, delimiter-selected tabular text, | ||
| Markdown, AsciiDoc, Djot, and A2ML representations, with synchronised editing | ||
|
Comment on lines
+44
to
+45
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ⚪ LOW RISK The list of supported formats provided here (including A2ML and omitting ORG, RST, and TYP) is inconsistent with the '7 synchronised format views' defined in
Owner
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. remedy this one if you can too, rabbit |
||
| as the intended progression; and | ||
| * https://github.com/hyperpolymath/blocky-writer[Blocky Writer] — fit content | ||
| into fixed-layout PDF and application-form boxes, baselines, and | ||
| per-character cells that were designed for hand spacing rather than reliable | ||
| computer entry. | ||
|
|
||
| The responsibilities must remain separate in code and evidence. Conversion | ||
| correctness does not prove synchronised editing, and synchronised editing does | ||
| not prove page-coordinate placement. A ForthWall operation may coordinate a | ||
| bounded critical step only after the relevant component's own semantic, | ||
| round-trip, geometry, confinement, and independent-verification gates pass. | ||
| The versioned composition contract is tracked in | ||
| https://github.com/hyperpolymath/docmatrix/issues/71[issue #71]; it explicitly | ||
| forbids making Microsoft Word or another lossy hub format mandatory. | ||
|
|
||
| == Conversion delivery gate | ||
|
|
||
| DocMatrix conversion claims require independently reproducible tests that | ||
| round trips preserve every construct described as lossless, lossy conversions | ||
| are reported, input and output formats are identified, and malformed or | ||
| ambiguous documents fail without silent rewriting. Viewer/editor behaviours | ||
| such as cursor mapping, synchronised tabs, and undo/redo belong to Formatrix | ||
| Docs and must be proved there. | ||
|
Comment on lines
+63
to
+68
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win 🔎 Supported by static analysis🏁 Script executed: #!/bin/bash
set -eu
printf '%s\n' '--- README scope and gate ---'
sed -n '20,75p' README.adoc
sed -n '95,125p' README.adoc
printf '%s\n' '--- candidate conversion definitions and callers ---'
rg -n --glob '!README.adoc' 'from\s*==\s*to|from.*to|DocMatrix|convert\(' .Repository: hyperpolymath/docmatrix Length of output: 9131 🏁 Script executed: #!/bin/bash
set -eu
printf '%s\n' '--- resolved core conversion API ---'
sed -n '110,190p' crates/formatrix-core/src/traits.rs
printf '%s\n' '--- resolved GUI conversion caller ---'
sed -n '225,270p' crates/formatrix-gui/src/commands.rs
printf '%s\n' '--- FFI conversion path ---'
sed -n '370,425p' crates/formatrix-core/src/ffi.rs
printf '%s\n' '--- identity-conversion tests and parser/refusal contracts ---'
rg -n -C 4 'from == to|same.format|identity|ambiguous|malformed|parse\(' crates/formatrix-core crates/formatrix-guiRepository: hyperpolymath/docmatrix Length of output: 50379 Validate identity conversions before returning input.
🤖 Prompt for AI Agents
Owner
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. and see if you can work on this, pelase There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
printf '%s\n' '--- conversion API outline ---'
ast-grep outline crates/formatrix-core/src/traits.rs --items all --type function,impl --match 'FormatRegistry|convert' || true
printf '%s\n' '--- GUI command outline ---'
ast-grep outline crates/formatrix-gui/src/commands.rs --items all --type function,impl --match 'convert_to_format|load_document|save_document' || true
printf '%s\n' '--- core conversion implementation ---'
rg -n -A55 -B15 'fn\s+convert\s*\(' crates/formatrix-core/src
printf '%s\n' '--- GUI conversion implementation ---'
rg -n -A70 -B15 'fn\s+convert_to_format\s*\(' crates/formatrix-gui/src
printf '%s\n' '--- relevant tests and parser error assertions ---'
rg -n -C4 --glob '*.rs' '(FormatRegistry|convert_to_format|from\s*==\s*to|ParseError|malformed|ambiguous)' cratesLength of output: 23325 🏁 Script executed: #!/bin/bash
set -euo pipefail
printf '%s\n' '--- package manifests and test files ---'
fd -a 'Cargo.toml|.*test.*\.rs$' crates -t f | sort
printf '%s\n' '--- core crate test modules and registry construction ---'
rg -n -C5 --glob '*.rs' '(#\[cfg\(test\)\]|#\[test\]|FormatRegistry::new|\.register\()' crates/formatrix-core
printf '%s\n' '--- GUI test modules and command tests ---'
rg -n -C5 --glob '*.rs' '(#\[cfg\(test\)\]|#\[test\]|convert_to_format\s*\()' crates/formatrix-gui
printf '%s\n' '--- parser error conditions ---'
rg -n -A18 -B8 --glob '*.rs' '(ConversionError::ParseError|ParseError\s*\{|Err\()' \
crates/formatrix-core/src/formats
printf '%s\n' '--- complete GUI parser dispatch and module imports ---'
sed -n '1,45p' crates/formatrix-gui/src/commands.rs
sed -n '237,350p' crates/formatrix-gui/src/commands.rs
printf '%s\n' '--- core and GUI manifest test dependencies ---'
for manifest in crates/formatrix-core/Cargo.toml crates/formatrix-gui/Cargo.toml; do
printf '%s\n' "--- $manifest ---"
sed -n '1,220p' "$manifest"
doneLength of output: 111334
The planned change is:
The GUI crate has no existing You are interacting with an AI system. |
||
|
|
||
| Critical-mode automatic editing through the proposed ForthWall layer has an | ||
| additional safety gate: bounded capabilities, exact input hashes and evidence | ||
| spans, semantic refusal conditions, replay traces, and independent verification | ||
| of every applied edit. See | ||
| https://github.com/hyperpolymath/docmatrix/issues/70[issue #70]. | ||
|
|
||
| == Supported Formats | ||
|
|
||
|
|
@@ -57,15 +98,22 @@ just deps | |
| # Build all components | ||
| just build | ||
|
|
||
| # Run GUI | ||
| just run-gui | ||
| # Exercise the currently evidenced conversion core | ||
| just test-core | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🟡 MEDIUM RISK Suggestion: The documentation now references a
Owner
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. and this one please |
||
|
|
||
| # Run TUI | ||
| just run-tui | ||
| # GUI and TUI recipes are ecosystem scaffolding, not DocMatrix capability proof | ||
|
Comment on lines
+101
to
+104
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win 🔎 Supported by static analysis🏁 Script executed: #!/bin/bash
set -eu
printf '%s\n' '--- relevant files ---'
git ls-files | rg '(^|/)(README\.adoc|Justfile|justfile|.*test.*|.*spec.*)$' | head -200
printf '%s\n' '--- README Quick Start ---'
cat -n README.adoc | sed -n '90,125p'
printf '%s\n' '--- just recipe definitions ---'
for f in Justfile justfile; do
if [ -f "$f" ]; then
printf '%s\n' "--- $f ---"
cat -n "$f"
fi
doneRepository: hyperpolymath/docmatrix Length of output: 26198 🏁 Script executed: #!/bin/bash
set -eu
printf '%s\n' '--- README scope and verification claims ---'
cat -n README.adoc | sed -n '20,80p'
printf '%s\n' '--- Cargo package declarations ---'
rg -n -A12 -B3 '^\[workspace\]|^name\s*=\s*"formatrix-core"|^\[package\]' Cargo.toml crates/formatrix-core/Cargo.toml
printf '%s\n' '--- core test outlines and conversion references ---'
for f in crates/formatrix-core/tests/*.rs; do
printf '%s\n' "--- $f ---"
rg -n '^(#\[test\]|fn |mod )|convert|parse|render|format|refus|ambig|malform' "$f"
doneRepository: hyperpolymath/docmatrix Length of output: 19328 🏁 Script executed: #!/bin/bash
set -eu
printf '%s\n' '--- delivery-gate test assertions ---'
rg -n -i -C3 'loss|ambig|malform|round.?trip|source_format|target_format|format identification|silent|rewrite|Err|error' \
crates/formatrix-core/tests crates/formatrix-core/src
printf '%s\n' '--- core source outline ---'
ast-grep outline crates/formatrix-core/srcRepository: hyperpolymath/docmatrix Length of output: 50379 Keep
🤖 Prompt for AI Agents
Owner
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this one seems to work, can you cross check against panic attack scan (hyperpolymath estate) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
printf '%s\n' '--- repository search ---'
gh api -X GET search/repositories \
-f q='panic attack user:hyperpolymath' \
-f per_page=100 \
--jq '.items[] | [.full_name, .html_url, .description] | `@tsv`' || true
printf '%s\n' '--- code search: exact phrase ---'
gh api -X GET search/code \
-f q='"panic attack" user:hyperpolymath' \
-f per_page=100 \
--jq '.items[] | [.repository.full_name, .path, .html_url] | `@tsv`' || true
printf '%s\n' '--- code search: likely scanner terms ---'
for query in \
'panic-attack user:hyperpolymath' \
'panic_attack user:hyperpolymath' \
'"PanicAttack" user:hyperpolymath'
do
printf '%s\n' "query: $query"
gh api -X GET search/code \
-f q="$query" \
-f per_page=100 \
--jq '.items[] | [.repository.full_name, .path, .html_url] | `@tsv`' || true
done
printf '%s\n' '--- issue and pull request search ---'
gh api -X GET search/issues \
-f q='"panic attack" user:hyperpolymath' \
-f per_page=100 \
--jq '.items[] | [.repository_url, .number, .title, .html_url, .state] | `@tsv`' || trueLength of output: 89600 🏁 Script executed: #!/bin/bash
set -euo pipefail
repo="hyperpolymath/panic-attack"
target="hyperpolymath/docmatrix"
pr="72"
get_file() {
local repository="$1"
local path="$2"
printf '\n--- %s:%s ---\n' "$repository" "$path"
gh api "repos/${repository}/contents/${path}" \
--jq '.content' 2>/dev/null \
| tr -d '\n' \
| base64 -d 2>/dev/null \
| sed -n '1,260p' || printf '%s\n' '[not available]'
}
printf '%s\n' '--- panic-attack root tree ---'
gh api "repos/${repo}/git/trees/HEAD?recursive=1" --paginate --jq \
'.tree[] | select(.path | test("^(README\\.adoc|QUICKSTART-USER\\.adoc|DESIGN\\.adoc|man/panic-attack\\.1|reports/|rules/|config/|src/)")) | [.path, .type] | `@tsv`' \
| head -250
get_file "$repo" "README.adoc"
get_file "$repo" "QUICKSTART-USER.adoc"
get_file "$repo" "man/panic-attack.1"
get_file "$repo" "reports/panic-attack-20260209184444.ncl"
printf '%s\n' '--- DocMatrix workflow/configuration/report candidates ---'
gh api "repos/${target}/git/trees/HEAD?recursive=1" --paginate --jq \
'.tree[] | select(.path | test("(?i)(panic|assail|estate-audit|security|hypatia|workflow|report)")) | [.path, .type] | `@tsv`' \
| head -300
printf '%s\n' '--- DocMatrix PR checks ---'
gh pr checks "$pr" --repo "$target" || true
printf '%s\n' '--- DocMatrix PR commits ---'
gh api "repos/${target}/pulls/${pr}/commits" --paginate --jq \
'.[] | [.sha, .commit.message] | `@tsv`'Length of output: 29216
Panic Attack checks security weak points, crash signatures, and stress resilience. It does not test conversion semantics such as loss reporting or ambiguous-input rejection. DocMatrix PR The finding remains valid. You are interacting with an AI system. |
||
| ---- | ||
|
|
||
| `just test-core` covers core parsing, rendering, format identification, round | ||
| trips, and no-panic handling. It is not the complete conversion delivery gate: | ||
| the suite does not yet provide dedicated loss-reporting or end-to-end ambiguous | ||
| format-identification rejection coverage. | ||
|
|
||
| == Architecture | ||
|
|
||
| The following tree is ecosystem/Formatrix Docs scaffolding retained in this | ||
| checkout; it is not the DocMatrix suite boundary: | ||
|
|
||
| [source] | ||
| ---- | ||
| crates/ | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win
Use one suite boundary across all architecture documents.
The changed README defines DocMatrix conversion infrastructure, Formatrix Docs viewing/editing, and Blocky Writer fixed-layout placement. Other changed sections still attribute conversion to Formatrix Docs, omit Blocky Writer, or label Formatrix Docs as a delivered human editor.
README.adoc#L23-L29: label the architecture tree as ecosystem or Formatrix Docs scaffolding.docs/DOCUMENTATION-SYSTEM-ARCHITECTURE.adoc#L60-L74: add DocMatrix as the conversion dependency and keep editor capabilities proposed.docs/DOCUMENTATION-SYSTEM-ARCHITECTURE.adoc#L508-L513: replace “Multi-format converter” with viewer/editor wording.docs/DOCUMENTATION-SYSTEM-ARCHITECTURE.adoc#L522-L523: name Blocky Writer or narrow the lifecycle claim.docs/MOSCOW-REQUIREMENTS.adoc#L197-L202: rename theHuman Editorheading and separate current from proposed requirements. (github.com)📍 Affects 3 files
README.adoc#L23-L29(this comment)docs/DOCUMENTATION-SYSTEM-ARCHITECTURE.adoc#L60-L74docs/DOCUMENTATION-SYSTEM-ARCHITECTURE.adoc#L508-L513docs/DOCUMENTATION-SYSTEM-ARCHITECTURE.adoc#L522-L523docs/MOSCOW-REQUIREMENTS.adoc#L197-L202🤖 Prompt for AI Agents
Source: MCP tools
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you fix this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
Length of output: 16659
@hyperpolymath, yes. The inconsistency is present in the current PR branch.Add Coding Agent trial credits or activate Agent usage billing before starting this turn.
You are interacting with an AI system.