<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Shizuku</title>
    <description>The latest articles on Forem by Shizuku (@shizuku198411).</description>
    <link>https://forem.com/shizuku198411</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3787803%2F079db305-655e-49e9-b5c4-7db0e0e7d237.png</url>
      <title>Forem: Shizuku</title>
      <link>https://forem.com/shizuku198411</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/shizuku198411"/>
    <language>en</language>
    <item>
      <title>Beyond Artifact-Only Evaluation: A Case for Development-Session Attestation (DSA)</title>
      <dc:creator>Shizuku</dc:creator>
      <pubDate>Tue, 24 Feb 2026 12:20:10 +0000</pubDate>
      <link>https://forem.com/shizuku198411/beyond-artifact-only-evaluation-a-case-for-development-session-attestation-dsa-2cio</link>
      <guid>https://forem.com/shizuku198411/beyond-artifact-only-evaluation-a-case-for-development-session-attestation-dsa-2cio</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;AI-assisted development has dramatically increased implementation speed.&lt;/p&gt;

&lt;p&gt;At the same time, I think it has made one thing harder: &lt;strong&gt;relying on artifact-only evaluation as a sufficient signal of engineering work&lt;/strong&gt; (repositories, portfolio sites, demos, finished UI screenshots, etc.).&lt;/p&gt;

&lt;p&gt;Artifacts still matter. Code review, testing, CI, and running systems will remain essential.&lt;/p&gt;

&lt;p&gt;The problem is not that artifacts became useless.&lt;/p&gt;

&lt;p&gt;The problem is that artifacts alone often do not answer questions like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How much of the implementation was actually understood?&lt;/li&gt;
&lt;li&gt;What tools/processes were executed during development?&lt;/li&gt;
&lt;li&gt;Is the development process itself explainable after the fact?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This becomes especially important in situations where implementation output is not the whole story:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;incident response and quality explanation&lt;/li&gt;
&lt;li&gt;hiring assessments&lt;/li&gt;
&lt;li&gt;constrained test environments (e.g., prohibited tools)&lt;/li&gt;
&lt;li&gt;training and education contexts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the gap I am trying to frame with &lt;strong&gt;DSA (Development-Session Attestation)&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;an evidence-and-verification layer for the development session itself, not just the final output.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you want to see a concrete implementation first:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub (SessionAttested): &lt;a href="https://github.com/shizuku198411/SessionAttested" rel="noopener noreferrer"&gt;https://github.com/shizuku198411/SessionAttested&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;DSA concept note (in repo): &lt;code&gt;DSA.md&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;PoC workspace example with WebUI screenshots: &lt;code&gt;attested_poc/README.md&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What This Article Is (and Isn’t)
&lt;/h2&gt;

&lt;p&gt;This is &lt;strong&gt;not&lt;/strong&gt; an eBPF/LSM implementation deep dive.&lt;/p&gt;

&lt;p&gt;I already have implementation-oriented material around &lt;code&gt;SessionAttested&lt;/code&gt;, which is one implementation path toward DSA.&lt;/p&gt;

&lt;p&gt;This article is about the higher-level idea:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;why artifact-only evaluation is becoming less sufficient&lt;/li&gt;
&lt;li&gt;what DSA is trying to add&lt;/li&gt;
&lt;li&gt;how it relates to existing auditing/provenance approaches&lt;/li&gt;
&lt;li&gt;how &lt;code&gt;SessionAttested&lt;/code&gt; fits into that picture&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What Is Changing in Artifact-Centric Evaluation
&lt;/h2&gt;

&lt;p&gt;Artifact-centric evaluation is not “wrong.” It is simply becoming less complete in some scenarios.&lt;/p&gt;

&lt;h3&gt;
  
  
  1) Portfolio artifacts are becoming easier to produce without corresponding understanding
&lt;/h3&gt;

&lt;p&gt;With modern AI tooling and developer assistants, it is increasingly possible to produce polished outputs without deep implementation understanding.&lt;/p&gt;

&lt;p&gt;That does not mean the artifact is fake.&lt;/p&gt;

&lt;p&gt;It means the artifact alone may no longer be enough to evaluate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;implementation comprehension&lt;/li&gt;
&lt;li&gt;engineering judgment&lt;/li&gt;
&lt;li&gt;ability to explain trade-offs and failure handling&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2) Verifying prohibited tool usage is difficult in practice
&lt;/h3&gt;

&lt;p&gt;In hiring exercises, training, competitions, or controlled environments, people may want to restrict certain tools.&lt;/p&gt;

&lt;p&gt;The practical challenge is not only “detection,” but &lt;strong&gt;making the result explainable at the level of a development session and its commits&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Common monitoring approaches often leave gaps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;endpoint-wide monitoring is noisy&lt;/li&gt;
&lt;li&gt;network monitoring does not map cleanly to file/commit changes&lt;/li&gt;
&lt;li&gt;shell history does not capture all delegated/internal process activity (&lt;code&gt;bash&lt;/code&gt;, &lt;code&gt;node&lt;/code&gt;, helper processes, IDE internals)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3) Suspicious or unintended process activity during development is hard to explain later
&lt;/h3&gt;

&lt;p&gt;IDE extensions, helper binaries, dependency/tool updates, and delegated subprocesses can all introduce process activity that is difficult to reason about after the fact.&lt;/p&gt;

&lt;p&gt;The core problem is often not:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Can we block everything?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;but rather:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Can we later explain what ran, what wrote to the workspace, and what commit it relates to?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  DSA (Development-Session Attestation): What I Mean by It
&lt;/h2&gt;

&lt;p&gt;By DSA, I mean:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;an approach/framework for treating development sessions (the process of development) as evidence that can be collected, bound, verified, and reviewed — in addition to final artifacts&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In other words, DSA extends the evaluation surface from:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;artifact only&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;artifact + development-session evidence&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What Questions DSA Should Help Answer
&lt;/h2&gt;

&lt;p&gt;A DSA-capable system should make it easier to answer questions like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What processes executed in this development session?&lt;/li&gt;
&lt;li&gt;Which executable identities wrote to the workspace?&lt;/li&gt;
&lt;li&gt;Which files were changed, and what process lineage touched them?&lt;/li&gt;
&lt;li&gt;Which commit(s) can this session be linked to?&lt;/li&gt;
&lt;li&gt;Did a session violate policy (e.g., prohibited tools)?&lt;/li&gt;
&lt;li&gt;Can these claims be verified later?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the part that is often missing if we only look at outputs or only look at CI/build provenance.&lt;/p&gt;

&lt;h2&gt;
  
  
  DSA Is an Evidence and Verification Layer, Not a Skill Scoring System
&lt;/h2&gt;

&lt;p&gt;This distinction matters.&lt;/p&gt;

&lt;p&gt;DSA is &lt;strong&gt;not&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;an automatic “skill score” engine&lt;/li&gt;
&lt;li&gt;a full replacement for code review or testing&lt;/li&gt;
&lt;li&gt;a universal proof of behavior outside the audited environment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;DSA is primarily about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;evidence collection&lt;/li&gt;
&lt;li&gt;evidence binding&lt;/li&gt;
&lt;li&gt;verification&lt;/li&gt;
&lt;li&gt;reviewability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;How that evidence is interpreted (hiring policy, education policy, compliance rules, etc.) remains an organizational decision.&lt;/p&gt;

&lt;p&gt;Keeping this separation is important; otherwise the discussion quickly collapses into “monitoring” or “tool banning” only.&lt;/p&gt;

&lt;h2&gt;
  
  
  How DSA Relates to Existing Approaches
&lt;/h2&gt;

&lt;p&gt;DSA is best understood as a &lt;strong&gt;complementary layer&lt;/strong&gt;, not a replacement.&lt;/p&gt;

&lt;h3&gt;
  
  
  EDR/XDR / Host Auditing
&lt;/h3&gt;

&lt;p&gt;Strong at:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;endpoint-wide process visibility&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Less strong at:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;session-scoped, commit-linked, developer-facing explainability&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Network Monitoring (FW / Proxy / NDR)
&lt;/h3&gt;

&lt;p&gt;Strong at:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;traffic visibility&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Less strong at:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;process/file/commit linkage for development work&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  CI / Provenance / Supply Chain Attestation
&lt;/h3&gt;

&lt;p&gt;Strong at:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;build/release provenance&lt;/li&gt;
&lt;li&gt;artifact integrity and pipeline traceability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Less strong at:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;developer-session provenance&lt;/strong&gt; (what happened while code was being authored)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Code Review / Testing
&lt;/h3&gt;

&lt;p&gt;Strong at:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;output quality and behavior validation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Less strong at:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;process evidence (what tools/processes actually ran)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In that sense, DSA sits in a gap between endpoint auditing and CI provenance:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;development-session process evidence&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  A Practical Layer Model for DSA
&lt;/h2&gt;

&lt;p&gt;To make DSA implementation-oriented (and not only conceptual), I find it useful to split it into layers:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Collection&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;session evidence (&lt;code&gt;exec&lt;/code&gt;, workspace writes, identities)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Binding&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;link session evidence to commits/repositories&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verification&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;policy checks, signature checks, integrity checks&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;human-facing UI/reports/artifacts&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Evaluation Policy&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;organizational interpretation and usage of evidence&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This layering helps separate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what the tooling should implement&lt;/li&gt;
&lt;li&gt;what organizations/teams should define as policy&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Where SessionAttested Fits
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;SessionAttested&lt;/code&gt; is one implementation path toward DSA.&lt;/p&gt;

&lt;p&gt;It currently provides a concrete stack for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;host-side auditing of dev-container sessions&lt;/li&gt;
&lt;li&gt;executable identity aggregation (&lt;code&gt;exec&lt;/code&gt; / &lt;code&gt;writer&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;commit binding&lt;/li&gt;
&lt;li&gt;signed attestations and verification&lt;/li&gt;
&lt;li&gt;review-oriented outputs and WebUI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So while it can be used for “AI agent detection” policies, I think the more durable framing is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;SessionAttested&lt;/code&gt; is a DSA-oriented evidence and verification foundation.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What DSA Changes in Practice (Realistically)
&lt;/h2&gt;

&lt;p&gt;DSA does not magically solve engineering evaluation.&lt;/p&gt;

&lt;p&gt;What it can do is improve the &lt;strong&gt;quality of evidence&lt;/strong&gt; available for review.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;reviewing artifact + development-session evidence together&lt;/li&gt;
&lt;li&gt;treating prohibited tool non-observation as a verifiable claim (within a managed session)&lt;/li&gt;
&lt;li&gt;making incident/quality discussions more evidence-based (“what ran in this session?”)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is a meaningful shift even before any “scoring” or large-scale standardization exists.&lt;/p&gt;

&lt;h2&gt;
  
  
  Limits (Important)
&lt;/h2&gt;

&lt;p&gt;DSA should be discussed with explicit limits, otherwise it becomes over-claiming.&lt;/p&gt;

&lt;p&gt;At least in the current framing (and in SessionAttested’s current implementation), DSA does &lt;strong&gt;not&lt;/strong&gt; prove:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;that no prohibited tools were used outside the audited environment/session&lt;/li&gt;
&lt;li&gt;code quality or architecture quality by itself&lt;/li&gt;
&lt;li&gt;a person’s skill level as a standalone conclusion&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It provides:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;high-confidence, verifiable process evidence for managed development sessions&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That framing is narrower, but much more defensible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Think DSA Is Worth Exploring
&lt;/h2&gt;

&lt;p&gt;I see DSA as a way to update our mental model of engineering evaluation in the AI-assisted era.&lt;/p&gt;

&lt;p&gt;Not by abandoning artifact review, but by &lt;strong&gt;adding a process-evidence layer&lt;/strong&gt; where it matters.&lt;/p&gt;

&lt;p&gt;That is the motivation behind &lt;code&gt;SessionAttested&lt;/code&gt;, and why I think “development-session attestation” is a useful concept to name and refine.&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;SessionAttested (GitHub): &lt;a href="https://github.com/shizuku198411/SessionAttested" rel="noopener noreferrer"&gt;https://github.com/shizuku198411/SessionAttested&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;DSA concept note (repo): &lt;code&gt;DSA.md&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;SessionAttested README: &lt;code&gt;README.md&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;PoC example (VS Code forbidden-tool comparison + WebUI): &lt;code&gt;attested_poc/README.md&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devops</category>
      <category>ai</category>
      <category>security</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>What a “Development Session Proof” Workflow Looks Like with SessionAttested</title>
      <dc:creator>Shizuku</dc:creator>
      <pubDate>Tue, 24 Feb 2026 03:20:08 +0000</pubDate>
      <link>https://forem.com/shizuku198411/what-a-development-session-proof-workflow-looks-like-with-sessionattested-512b</link>
      <guid>https://forem.com/shizuku198411/what-a-development-session-proof-workflow-looks-like-with-sessionattested-512b</guid>
      <description>&lt;p&gt;This article is a &lt;strong&gt;hands-on / operational follow-up&lt;/strong&gt; to my earlier write-up about SessionAttested.&lt;/p&gt;

&lt;p&gt;Instead of focusing on architecture or implementation internals, this one focuses on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how SessionAttested fits into a real development workflow&lt;/li&gt;
&lt;li&gt;how policy refinement actually works in practice&lt;/li&gt;
&lt;li&gt;what audit results look like in the built-in WebUI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The example used here is a real PoC workspace: &lt;code&gt;attested_poc/&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;In that PoC, I compare two cases under a policy that &lt;strong&gt;forbids VS Code (server/node executables)&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a session without VS Code usage (PASS)&lt;/li&gt;
&lt;li&gt;a session with VS Code usage (FAIL)&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;If you want to jump straight to the repository:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/shizuku198411/SessionAttested" rel="noopener noreferrer"&gt;https://github.com/shizuku198411/SessionAttested&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;PoC workspace example: &lt;a href="https://github.com/shizuku198411/SessionAttested/blob/main/attested_poc/README.md" rel="noopener noreferrer"&gt;https://github.com/shizuku198411/SessionAttested/blob/main/attested_poc/README.md&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  What This Article Tries to Show
&lt;/h2&gt;

&lt;p&gt;SessionAttested is not only about “detecting forbidden tools.”&lt;/p&gt;

&lt;p&gt;What becomes more interesting in practice is that it gives you a repeatable workflow for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;auditing development work in &lt;strong&gt;session-sized units&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;binding sessions to commits&lt;/li&gt;
&lt;li&gt;evaluating them against a policy&lt;/li&gt;
&lt;li&gt;producing signed outputs&lt;/li&gt;
&lt;li&gt;reviewing the results later (including cumulative observations across sessions)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is the angle I want to show here.&lt;/p&gt;




&lt;h2&gt;
  
  
  The PoC Scenario (VS Code Forbidden Policy)
&lt;/h2&gt;

&lt;p&gt;In &lt;code&gt;attested_poc/&lt;/code&gt;, I use a policy that treats VS Code-related executables (specifically VS Code Server / &lt;code&gt;node&lt;/code&gt;) as forbidden.&lt;/p&gt;

&lt;p&gt;This makes it easy to compare two sessions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;PASS case&lt;/strong&gt;: development without VS Code&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FAIL case&lt;/strong&gt;: development with VS Code (Remote SSH workflow)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is useful because it demonstrates both:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the &lt;strong&gt;policy verdict&lt;/strong&gt; (&lt;code&gt;PASS/FAIL&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;the &lt;strong&gt;audit evidence&lt;/strong&gt; (what was observed in &lt;code&gt;exec&lt;/code&gt; / &lt;code&gt;writer&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  A Real Workflow (How It Feels to Use)
&lt;/h2&gt;

&lt;p&gt;The workflow I ended up using repeatedly looks like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;attested workspace init&lt;/code&gt; (auditor)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;attested start&lt;/code&gt; (auditor)&lt;/li&gt;
&lt;li&gt;Work in the dev container + &lt;code&gt;attested git commit&lt;/code&gt; (auditee)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;attested stop&lt;/code&gt; (auditor)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;attested attest&lt;/code&gt; / &lt;code&gt;attested verify&lt;/code&gt; (auditor)&lt;/li&gt;
&lt;li&gt;Push (auditor or auditee, depending on policy)&lt;/li&gt;
&lt;li&gt;Repeat steps 2–6 for the next session&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The important point is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;workspace/container lifecycle&lt;/strong&gt; is separate from&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;session lifecycle&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So the container can be reused across sessions, while audit boundaries remain clear.&lt;/p&gt;




&lt;h2&gt;
  
  
  1) Workspace Initialization (&lt;code&gt;attested workspace init&lt;/code&gt;)
&lt;/h2&gt;

&lt;p&gt;You start from the project directory and run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;attested workspace init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Current behavior (interactive-friendly):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;asks for &lt;code&gt;workspace-id&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;uses current working directory as default workspace path&lt;/li&gt;
&lt;li&gt;asks whether to &lt;code&gt;build&lt;/code&gt; or &lt;code&gt;pull&lt;/code&gt; the container image (default: &lt;code&gt;build&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;optionally mounts a host SSH key for Git push from the container&lt;/li&gt;
&lt;li&gt;can capture GitHub repo / &lt;code&gt;git user.name&lt;/code&gt; / &lt;code&gt;git user.email&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This does more than “register a workspace”:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;creates SessionAttested scaffolding (&lt;code&gt;attest/attested.yaml&lt;/code&gt;, &lt;code&gt;attest/Dockerfile&lt;/code&gt;, &lt;code&gt;attest/policy.yaml&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;prepares &lt;code&gt;.attest_run/&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;creates/registers the dev container (left stopped)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That means the workspace becomes immediately usable as a SessionAttested-enabled dev environment.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;[IMAGE MARKER] &lt;code&gt;workspace init&lt;/code&gt; prompt flow / generated files (optional screenshot)&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  2) Start a Session (&lt;code&gt;attested start&lt;/code&gt;)
&lt;/h2&gt;

&lt;p&gt;To begin audited work:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;attested start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What happens:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the dev container starts (or is reused if already created)&lt;/li&gt;
&lt;li&gt;the collector starts automatically (if configured)&lt;/li&gt;
&lt;li&gt;a new &lt;code&gt;session_id&lt;/code&gt; is issued&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.attest_run/last_session_id&lt;/code&gt; is updated (used by no-argument flows)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the point where SessionAttested begins collecting:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;exec&lt;/code&gt; events&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/workspace&lt;/code&gt; write events&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  3) Work Inside the Dev Container + Commit (&lt;code&gt;attested git commit&lt;/code&gt;)
&lt;/h2&gt;

&lt;p&gt;Inside the container, the workflow feels close to normal development:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;connect via SSH / VS Code Remote SSH / &lt;code&gt;docker exec&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;edit code&lt;/li&gt;
&lt;li&gt;run commands&lt;/li&gt;
&lt;li&gt;commit changes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The key difference is that session-linked commits should use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /workspace
attested git add &lt;span class="nt"&gt;-A&lt;/span&gt;
attested git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"first commit"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This preserves normal Git behavior &lt;strong&gt;and&lt;/strong&gt; records session/commit linkage:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;commit_binding.json&lt;/code&gt; (latest)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;commit_bindings.jsonl&lt;/code&gt; (append-only history for multiple commits in one session)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This becomes part of the later attestation and verification flow.&lt;/p&gt;




&lt;h2&gt;
  
  
  4) Stop the Session (&lt;code&gt;attested stop&lt;/code&gt;)
&lt;/h2&gt;

&lt;p&gt;When work is done:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;attested stop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This finalizes the collector and writes aggregated outputs for that session:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;audit_summary.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;event_root.json&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Conceptually, this is the moment where “what happened in this dev session” becomes a closed, reviewable unit.&lt;/p&gt;




&lt;h2&gt;
  
  
  5) Attest + Verify (&lt;code&gt;attested attest&lt;/code&gt; / &lt;code&gt;attested verify&lt;/code&gt;)
&lt;/h2&gt;

&lt;p&gt;Next, the auditor evaluates and verifies the session:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;attested attest
attested verify &lt;span class="nt"&gt;--write-result&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This produces / updates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.attest_run/attestations/latest/attestation.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.attest_run/attestations/latest/attestation.sig&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.attest_run/attestations/latest/attestation.pub&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ATTESTED&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ATTESTED_SUMMARY&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ATTESTED_POLICY_LAST&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ATTESTED_WORKSPACE_OBSERVED&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Two outputs are especially useful in day-to-day use:&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;ATTESTED_SUMMARY&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Per-session verification results (append-only history):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;pass/fail&lt;/li&gt;
&lt;li&gt;reason&lt;/li&gt;
&lt;li&gt;commit(s)&lt;/li&gt;
&lt;li&gt;policy match status&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;ATTESTED_WORKSPACE_OBSERVED&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Workspace-level cumulative observed identities across sessions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what executables have been seen&lt;/li&gt;
&lt;li&gt;what writer identities have been seen&lt;/li&gt;
&lt;li&gt;unresolved counters&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is extremely useful when building or refining a policy over time.&lt;/p&gt;




&lt;h2&gt;
  
  
  6) How Policy Refinement Actually Works (&lt;code&gt;attested policy candidates&lt;/code&gt;)
&lt;/h2&gt;

&lt;p&gt;SessionAttested identifies tools by executable fingerprint (SHA256), not only by path strings.&lt;/p&gt;

&lt;p&gt;That means a practical policy workflow is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;observe what actually ran&lt;/li&gt;
&lt;li&gt;generate candidates&lt;/li&gt;
&lt;li&gt;review and refine&lt;/li&gt;
&lt;li&gt;apply policy&lt;/li&gt;
&lt;li&gt;run another session and evaluate&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Generate a Candidate Policy
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;attested policy candidates &lt;span class="nt"&gt;--include-exec&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This produces something like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.attest_run/policy.&amp;lt;session_id&amp;gt;.candidate.yaml&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The candidate includes observed identities as &lt;code&gt;forbidden_exec&lt;/code&gt; / &lt;code&gt;forbidden_writers&lt;/code&gt; candidates.&lt;/p&gt;

&lt;h3&gt;
  
  
  Review Before Applying
&lt;/h3&gt;

&lt;p&gt;In practice, this review step matters a lot.&lt;/p&gt;

&lt;p&gt;Things to check:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is this identity really a prohibited tool?&lt;/li&gt;
&lt;li&gt;Is it just a shell/helper process (&lt;code&gt;bash&lt;/code&gt;, &lt;code&gt;sh&lt;/code&gt;, &lt;code&gt;node&lt;/code&gt;) delegated by another tool?&lt;/li&gt;
&lt;li&gt;Is this a temporary install/setup tool that should not be in policy?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In my PoC, I used this process to define a policy that flags VS Code Server / node executables as forbidden.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;[IMAGE MARKER] policy snippet (&lt;code&gt;attest/policy.yaml&lt;/code&gt;) showing VS Code-related forbidden entries&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  7) Reviewing Results in the WebUI (&lt;code&gt;attested webui&lt;/code&gt;)
&lt;/h2&gt;

&lt;p&gt;This is the new part in &lt;code&gt;v0.1.1&lt;/code&gt; that made the workflow much easier to inspect.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;attested webui
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It launches a local HTTPS WebUI (self-signed certificate), and renders the recorded audit/verification outputs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why This Matters
&lt;/h3&gt;

&lt;p&gt;Before the WebUI, the workflow was already functional, but reviewing results meant opening several files manually:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ATTESTED_SUMMARY&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;audit_summary.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;attestation.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ATTESTED_WORKSPACE_OBSERVED&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The WebUI makes this much faster.&lt;/p&gt;

&lt;h3&gt;
  
  
  Session List (PASS/FAIL at a Glance)
&lt;/h3&gt;

&lt;p&gt;The first thing I check is the session list (“See other sessions”):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;session time window&lt;/li&gt;
&lt;li&gt;session id&lt;/li&gt;
&lt;li&gt;conclusion (PASS/FAIL)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq0laew3252hxb7n183to.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq0laew3252hxb7n183to.png" alt="session_list" width="800" height="249"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This immediately tells you which sessions need attention.&lt;/p&gt;

&lt;h3&gt;
  
  
  PASS Case View
&lt;/h3&gt;

&lt;p&gt;For PASS sessions, the useful checks are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;attestation/verification status&lt;/li&gt;
&lt;li&gt;audit summary counts&lt;/li&gt;
&lt;li&gt;executed/writer identities observed in that session&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk20gvyiz0ls5qvm0mno7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk20gvyiz0ls5qvm0mno7.png" alt="pass_summary" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  FAIL Case View (VS Code Forbidden)
&lt;/h3&gt;

&lt;p&gt;For FAIL sessions, the WebUI makes it easier to answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why did it fail? (reason code)&lt;/li&gt;
&lt;li&gt;Which identities matched the policy?&lt;/li&gt;
&lt;li&gt;Was it &lt;code&gt;exec&lt;/code&gt;, &lt;code&gt;writer&lt;/code&gt;, or both?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl48jakide4dj5s3ho3k0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl48jakide4dj5s3ho3k0.png" alt="fail_summary" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And with the detail view:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;applied policy snapshot&lt;/li&gt;
&lt;li&gt;conclusion details&lt;/li&gt;
&lt;li&gt;workspace cumulative observed identities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0a9gx2zntwgwcyijcl9o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0a9gx2zntwgwcyijcl9o.png" alt="fail_detail" width="800" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This makes the result much easier to explain to humans compared to raw files alone.&lt;/p&gt;

&lt;h3&gt;
  
  
  Important Note About the WebUI
&lt;/h3&gt;

&lt;p&gt;The WebUI is a &lt;strong&gt;viewer for recorded results&lt;/strong&gt;, not a replacement for &lt;code&gt;attest&lt;/code&gt; / &lt;code&gt;verify&lt;/code&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;machine decision: &lt;code&gt;attest&lt;/code&gt; / &lt;code&gt;verify&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;human review: &lt;code&gt;attested webui&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That split has worked well in practice.&lt;/p&gt;




&lt;h2&gt;
  
  
  8) Who Should Push? (Auditor vs Auditee)
&lt;/h2&gt;

&lt;p&gt;One thing I liked in actual usage: Git push can be done by either side.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Auditee (inside container)&lt;/strong&gt; pushes directly&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auditor (host side)&lt;/strong&gt; pushes only after &lt;code&gt;attest/verify&lt;/code&gt; passes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both are valid. Which one you choose depends on policy.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pattern A: Auditee Pushes
&lt;/h3&gt;

&lt;p&gt;Good when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;speed matters&lt;/li&gt;
&lt;li&gt;auditing is used as evidence/review, not a hard release gate&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Pattern B: Auditor Pushes After Verify
&lt;/h3&gt;

&lt;p&gt;Good when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;you want an explicit “verified before publication” workflow&lt;/li&gt;
&lt;li&gt;the auditor controls what gets pushed/published&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;code&gt;attested_poc&lt;/code&gt; setup supports either pattern.&lt;/p&gt;




&lt;h2&gt;
  
  
  9) What I Learned from Using It in Actual Workflows
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. It standardizes the workflow nicely
&lt;/h3&gt;

&lt;p&gt;The repeated flow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;workspace init&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;start&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;work + &lt;code&gt;attested git commit&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;stop&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;attest&lt;/code&gt; / &lt;code&gt;verify&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;creates clear audit boundaries without much extra mental load.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. It is still useful even for solo development
&lt;/h3&gt;

&lt;p&gt;Even when auditor = auditee, it remains valuable as a high-confidence process record:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what ran&lt;/li&gt;
&lt;li&gt;what wrote&lt;/li&gt;
&lt;li&gt;which session/commit it was tied to&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And &lt;code&gt;ATTESTED_WORKSPACE_OBSERVED&lt;/code&gt; is especially useful for post-hoc review and policy tuning.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. It doesn’t get in the way too much
&lt;/h3&gt;

&lt;p&gt;Since auditing runs on the host and development happens in a dev container:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the host stays cleaner&lt;/li&gt;
&lt;li&gt;the dev environment remains flexible&lt;/li&gt;
&lt;li&gt;IDE choice is not heavily constrained&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This matters more than it sounds if you actually try to use a security/audit tool in daily development.&lt;/p&gt;




&lt;h2&gt;
  
  
  10) Closing Thoughts
&lt;/h2&gt;

&lt;p&gt;Using &lt;code&gt;attested_poc&lt;/code&gt; as a concrete example made one thing clear to me:&lt;/p&gt;

&lt;p&gt;SessionAttested is more useful when seen as a &lt;strong&gt;development-session proof workflow&lt;/strong&gt; than as “just a detection tool.”&lt;/p&gt;

&lt;p&gt;The combination that makes it work in practice is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;dev-container-scoped work&lt;/li&gt;
&lt;li&gt;host-side observation of &lt;code&gt;exec&lt;/code&gt; / &lt;code&gt;writer&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;commit binding&lt;/li&gt;
&lt;li&gt;policy evaluation&lt;/li&gt;
&lt;li&gt;human review via WebUI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There is still room to improve (for example, persisting per-session &lt;code&gt;attestation.json&lt;/code&gt; instead of only &lt;code&gt;latest&lt;/code&gt;), but the workflow already feels usable enough to evaluate in real development.&lt;/p&gt;




&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;SessionAttested (GitHub): &lt;a href="https://github.com/shizuku198411/SessionAttested" rel="noopener noreferrer"&gt;https://github.com/shizuku198411/SessionAttested&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;PoC Workspace Example (EN): &lt;a href="https://github.com/shizuku198411/SessionAttested/blob/main/attested_poc/README.md" rel="noopener noreferrer"&gt;https://github.com/shizuku198411/SessionAttested/blob/main/attested_poc/README.md&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>security</category>
      <category>devops</category>
      <category>docker</category>
      <category>attestation</category>
    </item>
  </channel>
</rss>
