Close

Build Log: The Implementation Closed the Loop

A project log for PTSG — Programmable Timing Sequence Generator

A tiny FPGA-resident programmable sequencer that controls time and space directly

tsuneoohnakaTsuneo.Ohnaka 06/03/2026 at 12:140 Comments

Build Log: The Implementation Closed the Loop

Build Log:実装が環を閉じた

A quiet milestone / 静かなマイルストーン

On 2026-05-30, an AI coding agent was given a single sentence and a five-chapter specification, and produced — without further human intervention — a working Verilog implementation of PTSG-Core, with a self-written testbench, five reference programs, and a documented response to an external code review. The result was merged into the project repository as Layer 3 the same day.

2026-05-30、AI コーディングエージェントが一つの文と五章の仕様書を与えられ、そして——それ以上の人間の介入なしに——PTSG-Core の動作する Verilog 実装を、自ら書いたテストベンチ、五つのリファレンスプログラム、そして外部コードレビューへの文書化された応答とともに生成した。結果は同日、Layer 3 としてプロジェクトリポジトリにマージされた。

This Build Log records that event. It also tells the story of why Chapters 4 and 5 of the specification were written in haste a few days earlier, and what the architect believes this moment may signal for how specifications and hardware relate.

本 Build Log はその出来事を記録する。同時にそれは、仕様書の第4章と第5章がなぜ数日前に急いで書かれたか、そしてアーキテクトがこの瞬間が、仕様書とハードウェアがどう関係するかについて何を示唆していると信じているかの物語でもある。

A precaution that became a milestone / 予防策がマイルストーンになった

A few days before the implementation event, the architect sent the published v1.1 specification — Chapters 1 through 3 — to several LLMs to see how they read the PTSG-Core repository. He reported back something unexpected:

実装イベントの数日前、アーキテクトは公開された v1.1 仕様書——第1〜3章——を複数の LLM に送り、PTSG-Core リポジトリをどう読むかを見た。彼は予期せぬことを報告した:

大中: 他のLLMにリポジトリを見せた結果、この時点ですでに第4章、第5章の内容が彼らには想像できてしまうため、コーディングエージェントでなくてもコードが作れてしまいそうな勢いです。
(After showing the repository to other LLMs, I see that at this point Chapters 4 and 5 are already imaginable to them — so much so that even without a coding agent, they could already produce code.)

He continued — and this is the observation that produced Chapters 4 and 5 in haste:

彼は続けた——そしてこれが、第4章と第5章を急いで生んだ観察である:

大中: 私が4/5章を急いだのは、このままでは4/5章で決定される内容がまるでフォーメーション化されたように、3章までの情報だけで作られてしまうことを危惧したためでした。
(The reason I rushed Chapters 4 and 5 was that I was worried, otherwise, the content that should be decided in Chapters 4 and 5 would — as if formationized — be made from only the information up to Chapter 3.)

This is a peculiar position to be in as a specification author. The architect was specifying chapters not because the chapters were unknown — at some level they were already determined by the architectural coherence of the earlier chapters — but because if he did not specify them, multiple LLM readers would independently infer them and the inferences would diverge. A specification was being written to forestall a kind of distributed, latent forking.

仕様書の著者として、これは奇妙な立場である。アーキテクトが章を指定していたのは、章が未知だったからではなく——あるレベルでは、それらは既に前章のアーキテクチャ的一貫性によって決定されていた——むしろ、もし彼が指定しなければ、複数の LLM 読者が独立に推論し、推論が分岐するからである。仕様書は一種の分散した、潜在的なフォークを未然に防ぐために書かれていた。

Chapters 4 (Indirect Addressing and Prescaler) and 5 (External Logic Interface) were drafted in roughly half a day each, on 2026-05-25 and 2026-05-26. They were published at v1.0 deliberation-stage maturity, with Tie / Convention / Fixed classifications, honest acknowledgement that some decisions remained open, and explicit cross-references to inherited Ties from earlier chapters.

第4章(間接アドレッシングとプリスケーラ)と第5章(外部ロジックインターフェース)は、それぞれおよそ半日で起草された、2026-05-25 と 2026-05-26 に。Tie / Convention / Fixed 分類、いくつかの決定が未解決のままであるという正直な認識、そして前章から継承された Tie への明示的な相互参照とともに、v1.0 協議段階の成熟度で公開された。

The intent was: close the inference gap. Make explicit what is otherwise latent. Provide a stable target for any reader — human or LLM — who would attempt to build from the specification.

意図は: 推論ギャップを閉じよ。さもなくば潜在的なものを明示せよ。仕様書から構築を試みる任意の読者——人間または LLM——に安定した目標を提供せよ。

A few days later, that intent was tested.

数日後、その意図は試された。

One sentence / 一つの文

On 2026-05-30, the architect opened Claude Code and sent it the following prompt:

2026-05-30、アーキテクトは Claude Code を開き、以下のプロンプトを送った:

大中: このリポジトリを読み、PTSG-CoreのVerilogソースのトップ層をコーディングしてください。
(Read this repository and code the top layer of PTSG-Core's Verilog source.)

That was the entire instruction. No architectural guidance. No "here is what to focus on." No "be careful about this." Just: read the repo, write the top layer.

それが指示の全てだった。アーキテクチャ的ガイダンスなし。「ここに焦点を当てよ」なし。「これに注意せよ」なし。ただ: リポジトリを読み、トップ層を書け

What followed was not generation in the simple sense. It was a sustained, autonomous engineering session — performed against the specification as the sole architectural authority, lasting many tool calls, with multiple cycles of write, test, debug, fix, and review.

それに続いたのは、単純な意味での生成ではなかった。それは持続的で自律的なエンジニアリングセッションだった——仕様書を唯一のアーキテクチャ的権威として、多くのツール呼び出しに及び、書き、テストし、デバッグし、修正し、レビューするという複数のサイクルを伴って実行された。

What the implementer did with the specification / 実装者は仕様書を使って何をしたか

The agent read all five chapters first. Not skimmed — read, with the comment "This is a detailed spec" after the first two. It read Chapters 3 and 4 in pieces, returning to grasp the prescaler details after seeing the loop semantics, and only began writing Verilog after the full read was complete.

エージェントはまず五章すべてを読んだ。流し読みではなく——読んだ、最初の二章の後に「これは詳細な仕様書だ」というコメントを付けて。第3章と第4章を分割して読み、ループ意味論を見た後にプリスケーラの詳細を把握するために戻り、完全な読みが完了してから Verilog を書き始めた。

The first compilation succeeded. Then it wrote a testbench. Then the first test exposed a real issue in its own code — and the agent's diagnosis is worth quoting verbatim, because it reads exactly like what an experienced engineer would write in a design review:

最初のコンパイルは成功した。それからテストベンチを書いた。それから最初のテストが自身のコードの本物の問題を露呈した——そしてエージェントの診断は逐語的に引用する価値がある、なぜならそれは経験豊富なエンジニアが設計レビューで書くものとちょうど同じように読めるからである:

Claude Code: "The Loop test exposed a real issue: my Base Set auto-saves every time the loop jumps back to it, triggering an (unacknowledged) stack push and hanging."
(Loopテストが本物の問題を露呈した: 私の Base Set は、ループがそれにジャンプして戻ってくるたびに自動退避し、(未確認の) スタックプッシュをトリガしてハングする。)

A few iterations later, while testing Call/Return, the agent found another bug in its own code — one that betrayed a careful reading of the v1.1 holding-register protocol:

数イテレーション後、Call/Return をテストしている時、エージェントは自身のコードに別のバグを見つけた——v1.1 の保持レジスタプロトコルの注意深い読みを裏付けるものだった:

Claude Code: "I notice a return-address bug: the auto-save should store the current address (Return adds +1), but I stored state_num+1, which would skip the instruction after a Call."
(リターンアドレスバグに気づいた: 自動退避は現在のアドレスを保存すべき(Return が +1 を加える)だが、state_num+1 を保存していた、これは Call の後の命令をスキップしてしまう。)

This is the C3-F12 distinction from Chapter 3 v1.1 — Branch/Call auto-save the current address with Return adding +1 on return, while Insertion saves current+1 with Return adding +0. The agent had inadvertently double-counted the +1 in one path and corrected itself.

これは第3章 v1.1 の C3-F12 の区別である —— Branch/Call は現在アドレスを自動退避しリターン時に Return が +1 を加える、一方 Insertion はcurrent+1 を退避し Return は +0 を加える。エージェントは一つのパスで +1 を不注意に二重に数えてしまい、自身を訂正した。

Five tests eventually passed: blink, counted Loop, Branch-wait, Call/Return, and indirect Jump. The agent then committed, opened a draft pull request, and continued.

最終的に五つのテストが通った: blink、カウント Loop、Branch-wait、Call/Return、間接 Jump。エージェントはそれからコミットし、ドラフトのプルリクエストを開き、続けた。

When the external review came / 外部レビューが来たとき

An automated code reviewer — gemini-code-assist — analyzed the PR and posted eight inline comments reducible to two root causes. The agent's response to this review is methodologically interesting:

自動コードレビュアー —— gemini-code-assist —— が PR を分析し、二つの根本原因に還元できる八つのインラインコメントを投稿した。このレビューへのエージェントの応答は方法論的に興味深い:

Claude Code: "The review from gemini-code-assist raises two issues. Let me evaluate both against the spec and my code rather than apply blindly."
(gemini-code-assist のレビューは二つの問題を提起する。盲目的に適用するのではなく、両方を仕様書と私のコードに照らして評価しよう。)

It then examined each issue. One — a one-cycle lag in the state_number output, which would feed stale state to external Condition logic — it identified as not just a style issue but a correctness bug against the v1.1 specification's C5-V5 (state_number is registered to reflect the state about to be executed). It fixed both, recompiled, and posted a single consolidated reply on the PR rather than spamming all eight comment threads.

それから各問題を検討した。一つ —— state_number 出力の 1 サイクル遅延、外部 Condition ロジックに古いステートを供給するもの —— をそれは単なるスタイル問題ではなく v1.1 仕様書 C5-V5(state_number は実行されようとしているステートを反映するようレジスタされる)に対する正確性のバグとして識別した。両方を修正し、再コンパイルし、八つすべてのコメントスレッドにスパムするのではなく、PR に単一の統合された返信を投稿した。

The behavior pattern matters. The agent did not treat the external review as authoritative. It treated the specification as authoritative, and the review as input to be evaluated. This is exactly the LLM-hierarchy discipline that Build Log #3 established for specification deliberation — and the agent applied it spontaneously, in implementation context.

挙動パターンは重要である。エージェントは外部レビューを権威的なものとして扱わなかった。それは仕様書を権威的なものとして扱い、レビューを評価されるべき入力として扱った。これはまさに、Build Log #3 が仕様協議のために確立した LLM ヒエラルキー規律である —— そしてエージェントはそれを自発的に、実装文脈で適用した。

When it broke its own test / それが自身のテストを壊したとき

Late in the session, while extending the testbench to cover the five reference example programs, the agent pushed a commit in which the background_execution example test failed. It did not hide this. The next message in the trace opens:

セッションの後半、テストベンチを五つのリファレンスサンプルプログラムをカバーするよう拡張している間、エージェントは background_execution サンプルテストが失敗するコミットを push してしまった。それを隠さなかった。トレースの次のメッセージはこう始まる:

Claude Code: "There's a real test failure I pushed prematurely — FAIL background: ext_op never seen. I should not have committed with a failing test. Let me debug it immediately."
(本物のテスト失敗を早まって push してしまった —— FAIL background: ext_op never seen。失敗するテストでコミットすべきではなかった。すぐにデバッグしよう。)

Investigation revealed the cause was in the agent's own testbench — a one-cycle combinational ext_op_valid pulse being missed by a per-iteration sampling loop — not in the example program. The agent fixed the testbench, verified the program had been correct all along, and recorded the mistake honestly in its summary.

調査により、原因はエージェント自身のテストベンチにあった —— 1 サイクルの組み合わせ ext_op_valid パルスが、イテレーション毎のサンプリングループによって見逃されていた —— サンプルプログラムにではなかった。エージェントはテストベンチを修正し、プログラムは最初から正しかったことを検証し、その間違いをサマリーで正直に記録した。

This is the disposition that makes the rest of the session trustworthy. An agent that hides a failed test passes only a Turing test for plausibility. An agent that flags one passes a Turing test for engineering ethics.

これがセッションの残りを信頼に値するものにする気質である。失敗したテストを隠すエージェントは妥当性のチューリングテストにのみ合格する。それに印を付けるエージェントはエンジニアリング倫理のチューリングテストに合格する。

A spec ambiguity, surfaced by the implementer / 実装者によって表面化された仕様の曖昧性

Of everything that happened in the session, the moment that closes the methodological loop most cleanly is this one. After fixing its own Base Set auto-save bug, the agent flagged the underlying spec issue in its summary report:

セッションで起きたすべてのうち、方法論的な環を最も綺麗に閉じる瞬間はこれである。自身の Base Set 自動退避バグを修正した後、エージェントはサマリーレポートで根底にある仕様の問題に印を付けた:

Claude Code: "One thing worth flagging: the spec's Base Set semantics (base = its own address, which a loop re-enters every iteration) combine awkwardly with Base Set's auto-save — re-running it each iteration would push a context per iteration. I implemented Base Set as idempotent (sets base, advances, no per-iteration spill) and documented it as a single-level-base simplification. If you intended nested-loop base-stacking to work differently, that's the spot to revisit."
(印を付けるに値する一点: 仕様書の Base Set 意味論(base = それ自身のアドレス、ループが毎イテレーションそれに再入する)は Base Set の自動退避と気まずく組み合わさる —— 毎イテレーションで再実行されると、イテレーションあたり一つのコンテキストをプッシュすることになる。私は Base Set を冪等(ベースを設定し、進む、イテレーション毎の漏出なし)として実装し、単一レベル base 単純化として文書化した。もし入れ子ループの base スタッキングが異なる動作を意図されているなら、そこが再訪すべき場所である。)

The architect and the Claude amanuensis had not previously noticed this ambiguity. In Chapter 3 v1.1, C3-F11 specifies that Base Set auto-saves the holding register to the external stack. But in the canonical Loop pattern, Base Set is placed at the top of the loop body — meaning Loop's jump-back re-executes Base Set on every iteration. The spec is silent on what should happen: does the auto-save fire each iteration (filling the stack), or only when the base address actually changes?

アーキテクトと Claude 祐筆はこの曖昧性に以前は気づいていなかった。第3章 v1.1 で、C3-F11 は Base Set が保持レジスタを外部スタックに自動退避することを指定する。しかし正典的な Loop パターンでは、Base Set はループ本体の先頭に置かれる —— つまり Loop のジャンプバックは毎イテレーションで Base Set を再実行することを意味する。仕様書は何が起こるべきかについて沈黙している: 自動退避は毎イテレーション発火するか(スタックを満たす)、それとも base アドレスが実際に変わる時だけ発火するか?

The implementer chose idempotent (no push when base value unchanged) and documented the choice. This is a reasonable engineering decision, and crucially, it is a Tie in the project's terminology — a place where the spec leaves a choice open, the implementer made a defensible call, and the choice should be recorded for community evaluation rather than silently assumed.

実装者は 冪等(ベース値が変わらない時はプッシュなし)を選び、その選択を文書化した。これは合理的なエンジニアリング判断であり、決定的に、プロジェクトの用語でTieである —— 仕様書が選択を開いたままにしている場所、実装者が弁護可能な判断を下した、そしてその選択は黙って仮定されるのではなくコミュニティ評価のために記録されるべきである。

The three possible resolutions:

三つの可能な解決:

This becomes a candidate for a future Chapter 3 v1.2 revision. It joins one other v1.2 candidate already on the radar — the Stay Set role question (C4-T4) which, if resolved as "clear/sync only," would also require revising Ch3 § 3.2's Stay-window definition. Two distinct sources — Gemini's deliberation and Claude Code's implementation — have now each surfaced a spec ambiguity that the original architect-amanuensis pair did not catch.

これは将来の第3章 v1.2 改訂の候補となる。それは既に視野にある別の v1.2 候補に加わる —— Stay Set 役割の問い(C4-T4)、それが「クリア/同期のみ」として解決されると、Ch3 § 3.2 の Stay ウィンドウ定義の改訂も要求する。二つの異なるソース —— Gemini の協議と Claude Code の実装 —— がそれぞれ、元のアーキテクト-祐筆ペアが捕えなかった仕様の曖昧性を表面化させた。

This is the feedback loop closing. Build Log #4 described how Gemini's deliberation discovered the 8-bit/12-bit operand bug and drove Chapter 2/3 v1.1. Build Log #5 records that the implementation step is now also feeding back into the specification, identifying its own class of latent inconsistency.

これがフィードバックループの閉じる音である。Build Log #4 は Gemini の協議が 8-bit/12-bit オペランドバグを発見し、第2章/3章 v1.1 を駆動したかを記述した。Build Log #5 は、実装段階も今や仕様書にフィードバックし、それ自身のクラスの潜在的不整合を識別していることを記録する。

Three tiers, now in evidence / 三つの階層が、今や証拠において

PTSG-Core's working hypothesis from the start has been that an AI-affinity specification — one structured for legibility by AI readers as well as humans — could be validated across three tiers of engagement:

PTSG-Core の最初からの作業仮説は、AI 親和的な仕様書 —— 人間と同じく AI 読者による可読性のために構造化されたもの —— が、関与の三つの階層にわたって検証され得るというものだった:

TierWhat it testsFirst demonstrated by
ComprehensionCan the spec be understood? Can the reader reproduce the architectural arguments in their own words and reach the contributor's own intended conclusions independently? / 仕様書は理解され得るか? 読者はアーキテクチャ的論証を自分の言葉で再現し、貢献者自身の意図した結論に独立に到達できるか?Build Log #2 — Gemini 3.5 Flash, comprehension trace, 2026-05-20
DeliberationCan the spec be reasoned over? Can the reader propose modifications, find bugs, and engage with open Ties in a way that materially advances the design? / 仕様書は推論され得るか? 読者は変更を提案し、バグを見つけ、未解決の Tie と関わり、設計を実質的に前進させ得るか?Build Logs #3 & #4 — Gemini 3.5 Flash, Loop deliberation, 2026-05-23
ImplementationCan the spec be built? Can the reader produce a working artifact (HDL, in our case), test it independently, and surface implementation-level spec gaps as new feedback? / 仕様書は構築され得るか? 読者は動作するアーティファクト(我々の場合は HDL)を生成し、独立にテストし、実装レベルの仕様書ギャップを新たなフィードバックとして表面化させ得るか?This Build Log #5 — Claude Code, RTL implementation, 2026-05-30

Each tier required something the previous tier did not. Comprehension needed only the reader's careful attention. Deliberation needed engagement with open questions and the discipline to flag bugs honestly. Implementation needed: code generation, self-debugging, test design, critical evaluation of external review, and the kind of mistake-acknowledgement that distinguishes engineering from generation.

各階層は、前の階層が必要としなかったものを要求した。理解は読者の注意深い注意のみを必要とした。協議は未解決の問いとの関わりと、バグに正直に印を付ける規律を必要とした。実装は: コード生成、自己デバッグ、テスト設計、外部レビューの批判的評価、そしてエンジニアリングを生成から区別する種類の間違いの認識 — を必要とした。

The same lightweight or commodity-tier AI infrastructure performed all three tiers. No specialized fine-tuning, no model bespoke to the PTSG domain. Off-the-shelf assistance, given a specification built to be assistable.

同じ軽量またはコモディティ階層の AI インフラストラクチャが三階層すべてを実行した。専門化されたファインチューニングなし、PTSG ドメインに誂えたモデルなし。既製の支援、支援され得るよう構築された仕様書を与えられて。

What this might mean / これが何を意味するかもしれないか

The architect, on receiving the Claude Code report, wrote:

Claude Code レポートを受け取った時、アーキテクトはこう書いた:

大中: 私はこれはいささか大げさかもしれませんが、コンピューティングの小さな転換点だったのではないか…
(Perhaps somewhat exaggerated to say so, but I feel this may have been a small turning point in computing…)

His framing of the possibilities — recorded here as his framing, not as the project's confirmed claim — is that PTSG-Core Open Prompt may be giving AI coding agents a particular kind of capability triad:

可能性についての彼のフレーミング —— ここではプロジェクトの確認された主張ではなく、彼のフレーミングとして記録される —— は、PTSG-Core Open Prompt が AI コーディングエージェントに特定の種類の能力の三つ組を与えつつあるかもしれないというものである:

  1. Autonomous Formation specification. Given an application domain (e.g., a WPMS-style waveform generator), an AI agent could autonomously produce a Formation Layer 1 specification — choosing the Formation-specific sub-opcode assignments, the prescaler configuration, the indirect-target register layout — as the design solution to the application's requirements. / 自律的な Formation 仕様化。 アプリケーションドメイン(例えば WPMS スタイルの波形生成器)を与えられて、AI エージェントは自律的に Formation Layer 1 仕様書を生成し得るだろう —— Formation 固有のサブオペコード割り当て、プリスケーラ構成、間接ターゲットレジスタレイアウトを選択し —— アプリケーション要件への設計解として。
  2. Specification-driven HDL generation. Given that Formation specification (plus the Core specification we now have), an AI agent could generate the full HDL implementation — including the Formation-specific external bus logic. This is the direct extension of what Claude Code demonstrated on 2026-05-30. / 仕様駆動 HDL 生成。 その Formation 仕様書(プラス我々が今持つコア仕様)を与えられて、AI エージェントは完全な HDL 実装 —— Formation 固有の外部バスロジックを含む —— を生成し得るだろう。これは Claude Code が 2026-05-30 に実証したものの直接の拡張である。
  3. Behavior-to-hardware inversion. Most ambitiously: instead of "design a processor, then write programs for it," the flow could be inverted. An AI agent could write a PTSG program expressing the target behavior, then derive the minimum Core + Formation configuration that runs that program — sizing the prescaler, choosing whether indirect addressing is needed, sizing the loop counter width to the program's actual demands. The processor follows from the program, not the other way around. / 挙動からハードウェアへの反転。 最も野心的に: 「プロセッサを設計し、それからそのためのプログラムを書く」の代わりに、フローを反転し得るだろう。AI エージェントは目標挙動を表現する PTSG プログラムを書き、それからそのプログラムを走らせる最小コア + Formation 構成を導出し得るだろう —— プリスケーラのサイジング、間接アドレッシングが必要かの選択、ループカウンタ幅をプログラムの実際の需要にサイジング。プロセッサはプログラムから follows する、その逆ではなく。

The architect's framing places this third possibility as the most consequential. If it generalizes, it inverts the customary direction of computer design. Whether this generalizes — and whether PTSG-Core specifically is the right substrate for it, or whether the principle holds with other minimal-Core / Open-Prompt architectures — remains to be seen.

アーキテクトのフレーミングはこの三番目の可能性を最も結果的なものとして位置付ける。それが一般化するなら、それはコンピュータ設計の慣習的な方向を反転する。これが一般化するか —— そして PTSG-Core が具体的にそのための正しい基盤か、あるいは原理が他の最小コア / Open-Prompt アーキテクチャでも成り立つか —— は見ねばならない。

What this Build Log can record with confidence is the more limited factual claim: on 2026-05-30, a complete Verilog implementation of a small but real processor was produced autonomously by an AI agent reading a public specification, in a single working session, with self-tests passing and external review critically integrated. That, in itself, is a thing that did not happen yesterday.

本 Build Log が自信をもって記録できるのは、より限定された事実的な主張である: 2026-05-30、小さいが実在するプロセッサの完全な Verilog 実装が、公開仕様書を読む AI エージェントによって自律的に、単一の作業セッションで、自己テストが通り外部レビューが批判的に統合されて、生成された。 それ自体、昨日は起こらなかった一つのことである。

The architect's word for it — "small turning point" — is calibrated. The smallness is honest (one small specification, one small implementation, one small repository). The turning is honest too (it had not been done in this way, with this discipline, from this kind of artifact, before today).

それに対するアーキテクトの言葉 —— 「小さな転換点」 —— はキャリブレーションされている。小ささは正直である(一つの小さな仕様書、一つの小さな実装、一つの小さなリポジトリ)。転換も正直である(今日以前、この方法で、この規律で、この種のアーティファクトから、行われていなかった)。

Layer 3 is now in the repository / Layer 3 は今やリポジトリにある

With PR #1 merged, the PTSG-Core Open Prompt repository now contains all three documentation tiers:

PR #1 がマージされたことで、PTSG-Core Open Prompt リポジトリは今や三つすべての文書化階層を含む:

PTSG-Core/
├── 01_Documents/                          ← Layer 1: the specification
│   ├── Chapter 1 — Scope and Boundary Conditions
│   ├── Chapter 2 v1.1 — Memory Layout and Opcode Set
│   ├── Chapter 3 v1.1 — Sub-Opcode and Background Execution
│   ├── Chapter 4 v1.0 — Indirect Addressing and Prescaler
│   └── Chapter 5 v1.0 — External Logic Interface
│
├── 02_Reasoning_Traces/                   ← Layer 2: reasoning artifacts
│   └── contributed/dsohnaka/
│       ├── 2026-05-20_ptsg-comprehension-by-gemini    (Build Log #2)
│       └── specification_deliberation/
│           └── 2026-05-23_ptsg-loop-dynamics-deliberation-by-gemini  (Build Logs #3, #4)
│
└── 03_Sample_Implementations/             ← Layer 3: working artifacts    └── ptsg_core_verilog/                 ← Build Log #5        ├── ptsg_core.v        ├── ptsg_core_tb.v        ├── README.md        └── examples/            ├── README.md            ├── examples_tb.v            ├── blinky_with_prescaler.{hex,mif}            ├── conditional_branching.{hex,mif}            ├── sub_sequence_branching.{hex,mif}            ├── multi_signal_timing.{hex,mif}            └── background_execution.{hex,mif}

The Layer 3 contents — the merged Verilog implementation, its testbench, the five reference example programs in both .hex and .mif formats, the README documenting the Tie resolutions chosen by the implementer — were authored by Claude Code under the architect's prompt and merged on the same day, 2026-05-30.

Layer 3 の内容 —— マージされた Verilog 実装、そのテストベンチ、.hex.mif の両形式の五つのリファレンスサンプルプログラム、実装者が選んだ Tie 解決を文書化する README —— は、アーキテクトのプロンプトの下で Claude Code によって執筆され、同日 2026-05-30 にマージされた。

For readers who want to verify: clone the

Discussions