From 72b3209f3a77b58a7dcd7096affb67ef71cf26c3 Mon Sep 17 00:00:00 2001 From: N0zoM1z0 <161784452+N0zoM1z0@users.noreply.github.com> Date: Sat, 10 Oct 2026 17:55:58 +0800 Subject: [PATCH] docs(website): explain autonomy and oracle lessons in Touhou reconstruction --- website/README.md | 6 +- .../evidence/touhou-reconstruction-method.md | 112 +++ website/figures.md | 22 +- website/public/assets/styles.css | 172 ++++ .../blog/touhou-reconstruction/index.html | 811 +++++++++++++----- 5 files changed, 894 insertions(+), 229 deletions(-) diff --git a/website/README.md b/website/README.md index 93faf5e59..298bc4b80 100644 --- a/website/README.md +++ b/website/README.md @@ -43,7 +43,7 @@ HTML files. No URL list needs to be maintained. - `public/first-investigation/index.html`: a guided Notes export investigation, from setup to a checked CSV prediction. - `public/showcase/index.html`: the case-study index. - `public/blog/index.html`: articles about reconstruction methods, ports, mods and reverse engineering. -- `public/blog/touhou-reconstruction/index.html`: a personal essay about agent-driven reconstruction, knowledge that compounds across TH08 and TH095, and the workflow's applicability to PC-98 TH04. +- `public/blog/touhou-reconstruction/index.html`: a personal essay about agent autonomy, oracle quality, knowledge carried between TH08 and TH095, PC-98 TH04, and the path from exact reconstruction to readable source and modern ports. - `public/showcase/aegis/index.html`: Aegis's Android login-code calculation, with an adjustable clock and reference checks. - `public/showcase/dx-ball/index.html`: sound-pan investigation and project status. - `public/showcase/notion/index.html`: Notion's Electron clipboard bridge and rich clipboard format. @@ -136,6 +136,10 @@ quoted README passage and milestone counting rules are in The completed text has normal search metadata and is included in the generated sitemap. +Its opening flywheel connects agent autonomy, reference-based oracles and +repository memory. The essay develops those ideas through the project examples. +Figure labels are selectable HTML; inline SVG supplies the feedback arrows. + Keep the copy direct and specific. Explain the task and the result before listing tool names. Setup commands and runtime requirements should match the released package. Keep the core learning path inside the site. Source, issue and evidence diff --git a/website/evidence/touhou-reconstruction-method.md b/website/evidence/touhou-reconstruction-method.md index 99f3ceb33..9d5b91565 100644 --- a/website/evidence/touhou-reconstruction-method.md +++ b/website/evidence/touhou-reconstruction-method.md @@ -173,3 +173,115 @@ observations, also confirmed by the author in this revision request. It is not attributed to a new automated website test or a fresh runtime replay. The 64-bit port is described as in development. The earlier four-product build and function-count milestones retain their historical scopes. + +## Autonomy, oracles and the compounding flywheel + +The author's requested revision emphasizes two principles: agents have broad +autonomy to investigate, and their hypotheses are tested by oracles with concrete +references and explicit acceptance conditions. These ideas are developed in the +Factory's agent-autonomy and semantic-reconstruction documents listed above. +An oracle result supports the property and inputs actually checked; the essay +retains human responsibility for project milestones and release decisions. + +The flywheel is an explanatory model of this relationship. Its passing branch +retains a checked result and its evidence; a mismatch returns to investigation. +Code, checks and recorded lessons improve the next starting point, with TH08, +TH095 and TH04 illustrating knowledge carried between projects. It does not +depict a measured performance ratio or give REA sole credit for reconstruction. + +The first inline reference to GensokyoClub's public README links to the author's +selected [Internet Archive capture](https://web.archive.org/web/20260909051514/https://github.com/GensokyoClub/th08#important-notice). +The pinned source caption and 23-word excerpt retain their original provenance. +The author approved this revision for publication on 10 October 2026. + +## TH08's floating-literal oracle failure + +The author recalled a floating-point comparison bug. The source history and +public GitHub record identify it as a reference-data verification gap, rather +than a rounding-tolerance problem. The original Japanese TH08 1.00d executable +uses double `128.0` in the power arm of `ItemManager::OnUpdate`'s item-attraction +condition. The reconstructed source used `0.0`. + +- [Issue #10](https://github.com/N0zoM1z0/th08/issues/10), opened on 2 September + 2026, records the downstream Switch-port report, the target instructions and + the constant bytes. Normal power is non-negative, so the erroneous power arm + was effectively unconditional after crossing the collection line. Focus and + shot-type exceptions were separate, correct arms of the condition. +- [PR #11](https://github.com/N0zoM1z0/th08/pull/11), merged on 2 September, + contains commit + [`7148a76b`](https://github.com/N0zoM1z0/th08/commit/7148a76ba224742677895c7160807a68897957d5). + It changes the threshold from `0.0` to `128.0`, fixes the manifest literal + identity, and adds source-symbol/declared-data/target-data checks for + explicitly recorded floating literals. +- [PR #13](https://github.com/N0zoM1z0/th08/pull/13), merged the same day, + contains commit + [`a393f400`](https://github.com/N0zoM1z0/th08/commit/a393f400786e4cc6cbb1000af0dad3276da12c78). + It audits 1,548 configured floating-literal references, corrects twelve more + stale references across five accepted functions, and makes verification + automatic for every 32-bit or 64-bit `__real@...` relocation. Its tests include + deliberately invalid literal declarations and representations. + +The older comparison replayed the target address into the instruction's +relocation field, then compared instruction bytes without checking the +floating-literal data at that address. Source `0.0` could therefore appear +exact against target `128.0`. The essay explains this mechanism in ordinary +language and keeps implementation details in the linked record. The count is +of references, not distinct values or new functions. + +The website work reexamined the historical diffs and retrieved the issue and +PR metadata with `gh`; it did not rerun the game's historical compiler or +runtime. The author supplies the first-person lesson about working as one +human with agents and about responsibility for oracle quality. + +## Readability and the learned phase order + +The semantic discussion is based on the author's requested explanation, +[TH08's semantic playbook](https://github.com/N0zoM1z0/th08/blob/d2a00f4acb4a13916e07a00bd13f714961714628/docs/SEMANTIC_PLAYBOOK.md), +and the Factory's +[semantic-reconstruction workflow](https://github.com/N0zoM1z0/touhou-reconstruction-factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic-reconstruction.md). +The workflow's latest public change was checked using `gh` on 10 October. + +The recommended order is an exact baseline, a working historical-platform +product, semantic reconstruction with both validation paths, then portable +products. The original target/compiler comparisons and the historical +build/runtime checks answer different questions. Both are preserved during +semantic work. Names, ownership and protocol interpretations also need +producer/consumer evidence; a passing check does not establish their English +meaning. Modern ports compare behavior with the established historical build +without requiring the new architecture's machine code to match the old one. + +This is a method learned from the projects. TH08's earlier portable releases +preceded some later historical-platform audits. The essay states that history +explicitly rather than presenting the current order as the original chronology. +The game-RE background and the assembly/raw-offset aside are author-provided +perspective. Transfer to other fields is a proposal to carry the principles +while choosing references appropriate to the new domain. + +## Industrial analogy: instruments develop with machines + +The [Science Museum Group's steam-engine indicator record](https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts-steam-engine-indicator), +read on 10 October 2026, describes Boulton and Watt's introduction of the +instrument in 1796 to assist with valve adjustment. It also explains how adding +a pencil and moving paper made cylinder pressure through the stroke recordable. +The essay paraphrases this description and links it directly. It does not use +the record's images, quote its text, or date the displayed object or pressure +diagram to 1796. + +The connection to reconstruction tools is the author's analogy: rapid +execution needs measurement, and the instruments themselves require improvement. +The claim that this is an early industrial stage is the essay's interpretation +of the project experience. The historical example supports the measurement +comparison rather than a measured prediction about AI productivity. + +## Prose revision + +The later prose pass reduces repeated enumerations and develops each lesson +through its project example. It preserves the milestone figures, quotation, +source links and four-stage method. The two author-selected emphasized sentences +retain their wording. + +The opening takeaway now uses five bullets: agent autonomy, repository/Git +memory, evidence and explicit unknowns, testing the oracle, and the early stage +of the industrial shift. Each has a direct lead and a short explanation. The +historical-build/semantic/port sequence remains in the body rather than becoming +another takeaway item. diff --git a/website/figures.md b/website/figures.md index 534d8ac24..73fc70c42 100644 --- a/website/figures.md +++ b/website/figures.md @@ -96,9 +96,25 @@ formula, default settings, slider outputs and reference cases consistent. ## Touhou reconstruction essay -The essay opens with a takeaway and develops its argument in prose. It has no -opening flow figure. Project dates and the attributed README excerpt support -the narrative; detailed milestone references are available in a native +The essay opens with a takeaway and a flywheel explaining how experience +compounds. The figure uses selectable HTML labels and inline SVG connectors: +an autonomous agent proposes an experiment, an oracle tests it against a +reference, and code, evidence, checks and lessons remain in the repository. +A dashed mismatch branch returns to the agent for revision. The repository +supplies a better starting point for the next investigation; TH08 → TH095 → +TH04 illustrates knowledge carried between projects. Human direction names +the goal and acceptance criteria above the cycle. + +The caption connects reuse with improving the checks themselves. The TH08 +floating-literal case in the essay explains why a passing result can need +reexamination when an oracle's blind spot is discovered. Preserve that link +between the figure's ideal loop and the infrastructure lessons in the prose. + +The shared stylesheet positions the labels and gives narrow screens separate +connector geometry. Keep the arrows clear of the text and retain the same +meaning at every width. This is an explanatory model, with no measured speed +or productivity multiplier. Project dates and the attributed README excerpt +support the narrative; detailed milestone references are available in a native disclosure. Their provenance is documented in [evidence/touhou-reconstruction-method.md](evidence/touhou-reconstruction-method.md). diff --git a/website/public/assets/styles.css b/website/public/assets/styles.css index 542baf892..fe8539d0c 100644 --- a/website/public/assets/styles.css +++ b/website/public/assets/styles.css @@ -692,6 +692,178 @@ pre code { .blog-takeaway p:last-child { margin-bottom: 0; } +.blog-takeaway ul { + margin: 0; + padding-left: 1.15rem; +} +.blog-takeaway li + li { + margin-top: 0.75rem; +} +.reconstruction-flywheel { + max-width: 880px; + margin: 0 auto 4rem; + padding-block: 1.5rem 1.75rem; + border-block: 1px solid var(--line); +} +.flywheel-heading { + text-align: center; +} +.flywheel-heading .eyebrow { + margin-bottom: 0.6rem; + color: var(--accent); +} +.flywheel-heading > p:last-child { + color: var(--muted); + font-size: 0.875rem; +} +.flywheel-diagram { + position: relative; + max-width: 760px; + height: 440px; + margin-inline: auto; +} +.flywheel-arrows { + position: absolute; + inset: 0; + width: 100%; + height: 100%; +} +.flywheel-path-mobile { + display: none; +} +.flywheel-node { + position: absolute; + width: 30%; + text-align: center; + transform: translate(-50%, -50%); +} +.flywheel-node p { + margin: 0.6rem 0 0; + color: var(--muted); + font-size: 0.875rem; + line-height: 1.5; +} +.flywheel-node .flywheel-kicker { + margin: 0 0 0.4rem; + color: var(--accent); + font-size: 0.6875rem; + font-weight: 600; + letter-spacing: 0.09em; + text-transform: uppercase; +} +.flywheel-node h3 { + margin: 0; + font-size: 1.5rem; + line-height: 1.2; +} +.flywheel-agent { + top: 15%; + left: 50%; + width: 38%; +} +.flywheel-oracle { + top: 58%; + left: 79%; +} +.flywheel-memory { + top: 58%; + left: 21%; +} +.flywheel-retry, +.flywheel-center, +.flywheel-reuse, +.flywheel-pass { + position: absolute; + margin: 0; + padding: 0.25rem; + background: var(--page); + color: var(--muted); + font-size: 0.75rem; + line-height: 1.5; + text-align: center; + transform: translate(-50%, -50%); +} +.flywheel-retry { + top: 36%; + left: 68%; + width: 23%; +} +.flywheel-center { + top: 57%; + left: 50%; + width: 20%; + color: var(--accent); + font-size: 0.9375rem; +} +.flywheel-reuse { + top: 33%; + left: 23%; + color: var(--accent); +} +.flywheel-pass { + top: 94%; + left: 50%; + width: 75%; + color: var(--accent); + font-size: 0.8125rem; +} +.flywheel-projects { + display: flex; + justify-content: center; + align-items: center; + gap: 1.4rem; + margin-top: 0.3rem; +} +.flywheel-projects a { + font-size: 0.9375rem; + font-weight: 600; +} +.flywheel-projects span { + color: var(--muted); +} +.reconstruction-flywheel figcaption { + margin: 1rem auto 0; + max-width: 600px; + color: var(--muted); + font-size: 0.875rem; + text-align: center; +} +@media (max-width: 640px) { + .reconstruction-flywheel { + margin-bottom: 2.75rem; + } + .flywheel-diagram { + height: 405px; + } + .flywheel-agent { + width: 52%; + } + .flywheel-path-desktop { + display: none; + } + .flywheel-path-mobile { + display: initial; + } + .flywheel-node h3 { + font-size: 1.125rem; + } + .flywheel-node p { + font-size: 0.75rem; + } + .flywheel-node .flywheel-kicker { + font-size: 0.6rem; + letter-spacing: 0.05em; + } + .flywheel-center { + font-size: 0.75rem; + } + .flywheel-retry { + font-size: 0.625rem; + } + .flywheel-projects { + gap: 1rem; + } +} .blog-article blockquote { margin: 1.6rem 0; padding-left: 1.25rem; diff --git a/website/public/blog/touhou-reconstruction/index.html b/website/public/blog/touhou-reconstruction/index.html index 2afa3f1d9..10201ec25 100644 --- a/website/public/blog/touhou-reconstruction/index.html +++ b/website/public/blog/touhou-reconstruction/index.html @@ -147,21 +147,166 @@
Takeaway
-- Agent-driven reverse engineering changes how the work can - accumulate. - An investigation can become a checked result, a failed experiment - can become a reusable test, and one project's experience can become - the next project's starting point. -
-- Reconstructing TH08, TH095 and TH04 convinced me that RE is entering - its industrial age. -
+How experience compounds
+Human direction · Goal and acceptance criteria
+Autonomy
+Choose an experiment.
Propose a hypothesis.
Verification
+Test against a
concrete reference.
Repository
+Code, evidence,
checks and lessons.
+ Mismatch
Revise the hypothesis
+
+ A better
starting point
+
Reuse
++ Pass · Keep the result and its evidence +
+