Skip to content

docs: add Lode Coding and align docs with the code - #71

Merged
TheAngryByrd merged 2 commits into
masterfrom
docs/lode-and-doc-fixes
Oct 27, 2026
Merged

TheAngryByrd merged 2 commits into
masterfrom
docs/lode-and-doc-fixes

Conversation

@TheAngryByrd

@TheAngryByrd TheAngryByrd commented Oct 26, 2026 •

Copy link
Copy Markdown
Owner

Summary

This PR adds a Lode for AI agents, adds decision records, and corrects docs that disagree with the code.

+AGENTS.md                      # Lode Coding prompt, pinned to fjzeit/lode@7a21c1c
+adr/                           # 12 ADRs mined from merged PRs and commits
+CLAUDE.md                      # @AGENTS.md
 .gitignore
-docs/
+/docs/                         # the old rule also ignored lode/docs/
+lode/tmp/
+lode/                          # builders, build, tests, docs, benchmarks, plans
 README.md                      # build targets, env vars, and release flow from build/build.fs
 build/Changelog.fs             # TrimEnd('/') on the repository URL
 CHANGELOG.md                   # 39 links with IcedTasks//compare fixed
 docsSrc/Explanations/
   Choosing-a-builder.md        # backgroundCancellableTask and! column: No
   Understanding-and-bang.md
 src/IcedTasks/                 # XML docs: remove "A cancellation check is performed" where no check occurs
   TaskBuilderBase.fs
   ColdTask.fs
   CancellableTaskBuilderBase.fs

The ADRs in adr/ record 12 decisions, from the function type aliases (0001) to one namespace per builder file (0012). Each ADR quotes its PR, issue, review, or commit. When no source stated a reason, the maintainer confirmed the reason, and the ADR says so. The ADRs are in adr/, not docs/adr/, because docs/ is the generated fsdocs output and each docs build deletes it.

Doc corrections:

  • README.md lists the real FAKE targets and chains. CONFIGURATION defaults to Debug, and the Publish target uses Release. The release flow is Release on master, a tag push, and then publish.yml with NuGet trusted publishing.
  • backgroundCancellableTask has no MergeSources. An and! gives error FS3343, so the docs no longer say that it supports and!.
  • The XML docs of Return, Bind, For, and BindNoCancellation said that they check for cancellation. Those members do not check. The two Bind overloads that check keep the remark.

Evidence

  • Before: mkLinkReference with https://github.com/TheAngryByrd/IcedTasks/ made https://github.com/TheAngryByrd/IcedTasks//compare/....
    After: It makes https://github.com/TheAngryByrd/IcedTasks/compare/.... The URL with no trailing slash gives the same result.
  • backgroundCancellableTask { let! a = ... and! b = ... } fails with error FS3343.
  • dotnet build src/IcedTasks -c Release gives 0 warnings. dotnet fantomas src build --check is clean. dotnet build build/build.fsproj passes.

Merge Danger

Door: two-way

Blast Radius: docs

The only code changes are XML doc comments and URL building in build/Changelog.fs. The next Release target run uses the new Changelog.fs code.

These defects exist on master. This PR does not fix them:

  1. backgroundCancellableTask does not support and!.
  2. Expect.throwsTAsync has an inverted type check. It fails when the exception is the expected type or a base type, and passes for other types.
  3. RevertChangelog reads changelogBackupFilename in build/build.fs, and no code sets that value.
  4. The FSharpAnalyzers target reads packages/analyzers, and no step creates that directory.

🤖 Generated with Claude Code

TheAngryByrd and others added 2 commits October 26, 2026 10:55
Add AGENTS.md with the Lode Coding prompt, CLAUDE.md that imports it,
and a Lode in lode/ that describes the builders, build, tests, docs,
and benchmarks. Anchor the docs/ ignore rule to the root so that
lode/docs/ is tracked, and ignore lode/tmp/.

Correct documents that disagreed with the code:
- README: configuration default, SDK requirements, the target list,
  and the release flow with NuGet trusted publishing.
- XML docs: remove "A cancellation check is performed" from members
  that do no check.
- Choosing-a-builder and Understanding-and-bang: backgroundCancellableTask
  has no MergeSources, so it does not support and!.
- Changelog links: gitHubRepoUrl ends with a slash, so the generated
  compare and tag links had "//". Trim the slash where Changelog.fs
  builds the links, and fix the existing links in CHANGELOG.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add 12 decision records in adr/, mined from the merged PRs and commits
and confirmed with the maintainer. ADRs live in adr/ because docs/ is
the generated fsdocs output. The Lode links each ADR from its domain
file and records three facts from the skipped candidates.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@TheAngryByrd
TheAngryByrd merged commit 5398de2 into master Oct 27, 2026
7 checks passed
@TheAngryByrd
TheAngryByrd deleted the docs/lode-and-doc-fixes branch October 27, 2026 15:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant