Docs: add/update repository documentation - #51
Merged
Conversation
Reconciles both documentation surfaces against the repository. Treated as a simple repository — one SwiftPM package, one build and one test command — so one root AGENTS.md and one root README.md, no component files. README.md gains the inventory it was missing. It documented monitor.app and monitord and never mentioned monitorctl at all, so a reader had no idea the third binary existed. It now lists all three executables with what each is and whether it ships in the release zip (monitorctl does not; make-app.sh stages only monitor.app and monitord), all five libraries, and the StampCommit plugin. Both CLIs get their verified flags in tables, taken from the declarations and confirmed against --help. AGENTS.md keeps its structure and its hand-written Key Concepts, and fixes what went stale: - The logging note claimed only monitorctl prints. monitord prints its startup line, its usage and its version. - The test list omitted CommandLineTests. - The CLI targets are described as ArgumentParser commands, not bare harnesses. - The ci.yml summary omitted the new help/version smoke steps. - Package.resolved is called out as committed, in Environment and again under Use Extra Caution as a lockfile. - A Deprecated section records the two patterns that are now gone: hand-rolled argument scanning with a usage literal, and main.swift top-level code. - Troubleshooting gains the SourceRegistry.makeAll() cost, which cost four minutes of test time before it was found. docs/architecture.md said "four libraries and two executables" and its diagram had neither MonitorLog nor monitord. Corrected to five and three, with a MonitorLog section. Package.swift's header comment omitted the same two.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Reconciles
README.mdandAGENTS.mdagainst the current repository, plus two stale files they depend on.README.mdgains the inventory it was missing. It documentedmonitor.appandmonitordand never mentionedmonitorctlat all, so a reader had no idea the third binary existed. It now carries:monitorctldoes not:Scripts/make-app.shstages onlymonitor.appandmonitordinto.build/package.MonitorLog, which the README had never mentioned either.@Option/@Flagdeclarations and confirmed against--help.AGENTS.mdkeeps its structure and its hand-written Key Concepts. Corrections:monitorctlprints"monitordprints its startup line, usage and versionCommandLineTestsci.ymlsummary omitted the new smoke stepsPackage.resolvedAdded a Deprecated section (hand-rolled argument scanning with a usage literal;
main.swifttop-level code) and a Troubleshooting entry for theSourceRegistry.makeAll()cost that cost four minutes of test time.docs/architecture.mdsaid "Four libraries and two executables" and its diagram had neitherMonitorLognormonitord. Corrected to five and three, with aMonitorLogsection.Package.swift's header comment omitted the same two targets.Delivery mode
pr, notdirect. The direct-mode criteria do not all hold:ci.ymltriggers onpull_request, and every recent commit onmainis a merge from a PR. (Single author and no branch protection do hold.)Repository shape
Treated as a simple repository: one SwiftPM package, one
swift buildand oneswift testcovering every target, and no independently built or deployed component. One rootAGENTS.mdand one rootREADME.md; no component-level files.CLAUDE.mdandGEMINI.mdwere already symlinks toAGENTS.mdand are unchanged.Note on the AGENTS.md length budget
AGENTS.mdis 593 lines, well over the ~150-line target, and I did not cut it to fit. Its Key Concepts section is the only place several load-bearing arguments are written down —grepoverdocs/ui.mdfinds no coverage of window totals, the computed time axis, tile zoom, orPanelArrangement. Trimming to budget would have deleted unique hand-written rationale rather than padding. Flagging it as a deliberate deviation; splitting Key Concepts intodocs/is a reasonable follow-up if you want the file shorter.Inferred or uncertain
CSVLogSink.receive(a new file opens whenLogRetention.periodchanges) combined with the per-run filename.docs/roadmap.mddescribes it as "one file per day", which reads as inconsistent withmonitord --help's "one per run"; both are true together, and I leftroadmap.mduntouched as out of scope.Not done
Nothing requested was blocked. Labelled
release:skip: this touchesPackage.swift, which falls outsiderelease.yml's docs-only path filter, so without the label a comment-only change would cut a release.