Packages
fnord
0.9.37
0.9.40
0.9.39
0.9.38
0.9.37
0.9.36
0.9.35
0.9.34
0.9.33
0.9.32
0.9.31
0.9.30
0.9.29
0.9.28
0.9.27
0.9.26
0.9.25
0.9.24
0.9.23
0.9.22
0.9.21
0.9.20
0.9.19
0.9.18
0.9.17
0.9.16
0.9.15
0.9.14
0.9.13
0.9.12
0.9.11
0.9.10
0.9.9
0.9.8
0.9.7
0.9.6
0.9.5
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.99
0.8.98
0.8.97
0.8.96
0.8.95
0.8.94
0.8.93
0.8.92
0.8.91
0.8.90
0.8.89
0.8.88
0.8.87
0.8.86
0.8.85
0.8.84
0.8.83
0.8.82
0.8.81
0.8.80
0.8.79
0.8.78
0.8.77
0.8.76
0.8.75
0.8.74
0.8.73
0.8.72
0.8.71
0.8.70
0.8.69
0.8.68
0.8.67
0.8.66
0.8.65
0.8.64
0.8.63
0.8.62
0.8.61
0.8.60
0.8.59
0.8.58
0.8.57
0.8.56
0.8.55
0.8.54
0.8.53
0.8.52
0.8.51
0.8.50
0.8.49
0.8.48
0.8.47
0.8.46
0.8.45
0.8.44
0.8.43
0.8.42
0.8.41
0.8.40
0.8.39
0.8.38
0.8.37
0.8.36
0.8.35
0.8.34
0.8.33
0.8.32
0.8.31
0.8.30
0.8.29
0.8.27
0.8.26
0.8.25
0.8.24
0.8.23
0.8.22
0.8.21
0.8.20
0.8.19
0.8.18
0.8.17
0.8.16
0.8.15
0.8.14
0.8.13
0.8.12
0.8.11
0.8.1
0.8.0
0.7.24
0.7.23
0.7.22
0.7.21
0.7.20
0.7.19
0.7.18
0.7.17
0.7.16
0.7.15
0.7.14
0.7.13
0.7.12
0.7.11
0.7.10
0.7.9
0.7.8
0.7.7
0.7.6
0.7.5
0.7.3
0.7.2
0.7.1
0.7.0
0.6.9
0.6.8
0.6.7
0.6.6
0.6.5
0.6.4
0.6.3
0.6.1
0.6.0
0.5.9
0.5.8
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.44
0.4.43
0.4.42
0.4.41
0.4.40
0.4.39
0.4.38
0.4.37
0.4.36
0.4.35
0.4.34
0.4.33
0.4.32
0.4.30
0.4.29
0.4.28
0.4.27
0.4.26
0.4.25
0.4.24
0.4.23
0.4.22
0.4.21
0.4.20
0.4.19
0.4.18
0.4.17
0.4.16
0.4.15
0.4.14
0.4.13
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.0
0.2.0
0.1.0
AI code archaeology
Current section
221 Versions
Jump to
Current section
221 Versions
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…