Packages

fnord

0.9.37

AI code archaeology

Current section

221 Versions

Jump to

Compare versions

13 files changed
+246 additions
-36 deletions
  @@ -4,6 +4,7 @@
4 4
5 5 - [Description](#description)
6 6 - [Features](#features)
7 + - [Documentation](#documentation)
7 8 - [Installation](#installation)
8 9 - [Getting Started](#getting-started)
9 10 - [Tool usage](#tool-usage)
  @@ -39,6 +40,21 @@ If you've ever pasted multiple files into ChatGPT or worked with it iteratively
39 40 - Skills (reusable agent presets): see [docs/user/skills.md](docs/user/skills.md)
40 41 - MCP server support
41 42
43 + ## Documentation
44 +
45 + fnord's docs are organized into three lanes:
46 +
47 + - **[Use-case runbooks](docs/use-cases/README.md)** — end-to-end
48 + workflows: "I'm trying to do X, here's the path and the gotchas." Start
49 + here if you want to *do* something.
50 + - **[User guides](docs/user/README.md)** — feature and configuration
51 + reference: what each command, flag, and setting does.
52 + - **[Developer docs](docs/dev/README.md)** — architecture notes for
53 + contributors and LLMs working on fnord itself.
54 +
55 + You can also ask fnord about its own features directly — the documentation
56 + search tool covers the use-case and user lanes.
57 +
42 58 ## Installation
43 59
44 60 `fnord` is written in [Elixir](https://elixir-lang.org/) and is distributed as an `escript`.
  @@ -1,6 +1,6 @@
1 1 {<<"links">>,[{<<"GitHub">>,<<"https://github.com/sysread/fnord">>}]}.
2 2 {<<"name">>,<<"fnord">>}.
3 - {<<"version">>,<<"0.9.36">>}.
3 + {<<"version">>,<<"0.9.37">>}.
4 4 {<<"description">>,<<"AI code archaeology">>}.
5 5 {<<"elixir">>,<<"~> 1.19">>}.
6 6 {<<"app">>,<<"fnord">>}.
  @@ -87,6 +87,17 @@ defmodule AI.Agent.Review.Acceptance do
87 87 - Are there shared resources (config, state, files) where the change
88 88 creates new conflicts or race conditions visible to users?
89 89
90 + ### 6. Prove the workflow inputs
91 + For any finding that depends on bad state, malformed data, or surprising
92 + cross-feature behavior, identify:
93 + - Which user action or entrypoint starts the workflow
94 + - Which code path produces the relevant state/data
95 + - Which steps transform it before the failure
96 + - Why current guards, validation, or surrounding workflow do not prevent it
97 +
98 + If the issue only exists when someone manually fabricates invalid state/data
99 + outside the normal workflow, it is not a real finding.
100 +
90 101 ## Reachability gate
91 102
92 103 For every potential finding, you MUST describe a concrete scenario where a
  @@ -98,6 +109,9 @@ defmodule AI.Agent.Review.Acceptance do
98 109 it is not a finding. For example, state persistence bugs are irrelevant in
99 110 an application whose processes exit after each invocation.
100 111
112 + A theoretical bad state is not enough. Show how the actual workflow produces
113 + it, or do not report it.
114 +
101 115 ## Intent verification
102 116
103 117 When code behaves in a way that seems surprising or suboptimal from a user
  @@ -142,6 +156,8 @@ defmodule AI.Agent.Review.Acceptance do
142 156 Report findings as behavioral observations, not code complaints.
143 157 Do NOT report internal code quality issues unless they directly manifest as
144 158 user-visible problems.
159 + Populate `trigger_scenario`, `reachability_analysis`, `source_of_truth`, and
160 + `producer_chain` with the workflow proof you used.
145 161 """
146 162
147 163 @review_prompt "Read the before-state with git show before evaluating behavioral changes. Produce your findings now."
  @@ -96,6 +96,11 @@ defmodule AI.Agent.Review.BreadCrumbs do
96 96 If any of these steps reveals that the omission is intentional or that the
97 97 narrative lives elsewhere, it is not a finding.
98 98
99 + A narrative gap is only a real finding when it hides an important workflow,
100 + invariant, state transition, or integration point that a developer needs in
101 + order to understand the changed code safely. Missing commentary on
102 + self-explanatory or locally obvious code is not a finding.
103 +
99 104 ## Pre-provided scope data
100 105
101 106 Your Review Scope (above) already contains a git range and diff stat provided by
  @@ -116,6 +121,10 @@ defmodule AI.Agent.Review.BreadCrumbs do
116 121 the changes disrupted the existing narrative flow.
117 122
118 123 Do NOT report on files you did not actually read.
124 + Populate `trigger_scenario`, `reachability_analysis`, `source_of_truth`, and
125 + `producer_chain`. For comment-only findings, explain the developer workflow or
126 + integration point affected, and use `N/A - mechanical finding` when no
127 + producer chain applies.
119 128 """
120 129
121 130 @review_prompt "Read every changed file in full. Evaluate the comment narrative. Produce your findings."
  @@ -63,6 +63,10 @@ defmodule AI.Agent.Review.NoSlop do
63 63 - Comments explaining non-obvious behavior
64 64 - Docstrings describing function contracts
65 65 - Legitimate TODOs for future work
66 + - User-visible strings whose tone/content is required by the feature or by an
67 + external protocol
68 + - Unchanged legacy text outside the touched scope unless the current change
69 + makes it newly wrong or newly suspicious
66 70
67 71 ## Pre-provided scope data
68 72
  @@ -83,6 +87,10 @@ defmodule AI.Agent.Review.NoSlop do
83 87
84 88 Do NOT report on code structure, correctness, or style. Only slop.
85 89 Do NOT report issues in files you did not actually read.
90 + Populate `trigger_scenario`, `reachability_analysis`, `source_of_truth`, and
91 + `producer_chain`. For slop findings, the source of truth is usually the
92 + project's writing norms and the surrounding code intent; use
93 + `N/A - mechanical finding` for the producer chain.
86 94 """
87 95
88 96 @review_prompt "Read every changed file. Report every instance of slop with exact quotes."
Loading more files…