-
Notifications
You must be signed in to change notification settings - Fork 4
Clarify AI agent workflow, add decision log, and align CTF with latest BOM #137
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
peter-lawrey
wants to merge
17
commits into
develop
Choose a base branch
from
adv/develop
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
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
james-mcsherry
approved these changes
Nov 25, 2025
…ionUID visibility, and refine logging statements
…ts for Chronicle Test Framework
…asses for improved code cleanliness
… adjust README toc settings for consistency
|
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.



This PR strengthens the Chronicle Test Framework’s documentation for AI agents, introduces an explicit decision log, and aligns the module with the latest OpenHFT dependency BOM. It also includes several minor API/quality tweaks and test harness improvements.
Functional changes
Dependency alignment:
third-party-bom3.27ea5 → 3.27ea7 inpom.xml, pulling in the latest curated dependency set from the OpenHFT stack (e.g. updated logging stack and related libraries via the BOM).DtoTester builder API refinement:
DtoTester.Builder.addMutator(...)drops the unused type parameter<R>and now returnsBuilder<T>directly in both the interface andDtoTesterBuilderimplementation.builder.<SomeType>addMutator(...)), but is otherwise behaviour-preserving and simplifies the public API.Process / I/O and charset correctness in tests:
InternalJavaProcessBuildernow usesFile.pathSeparatorinstead of looking up thepath.separatorsystem property and uses SLF4J parameterised logging for process output formatting.TcpProxyTest:ISO_8859_1explicitly for encoding/decoding bytes in the proxy round-trip tests, aligning tests with our documented charset guidance.TcpProxyTest.classand cleans up log message formatting.MappedFileUtilnow reads/proc/self/mapsvia anInputStreamReaderthat explicitly usesStandardCharsets.UTF_8, ensuring predictable decoding and safer error handling when enumerating mapped files on Linux.Overall, the core library behaviour is unchanged; the main externally visible change is the cleaner
DtoTester.Buildermethod signature and the dependency versions coming from the BOM.Non-functional changes
AI agent and contributor guidance
AGENTS.md
Relax language/encoding policy from ASCII-7 to ISO-8859-1 while still forbidding smart quotes, non-breaking spaces, and stray Unicode; document how to check for invalid characters (
iconv, IDE inspections).Add a link to the University of Oxford style guide for British English usage.
Clarify Javadoc expectations and add an inline “good vs bad” comment example to discourage noisy comments.
Recommend
mvn -q clean verifyfrom a clean checkout and note that exit code0is required before opening a PR.Add guidance on when to open PRs (build green, focused scope, linked issues/decisions).
Expand reviewer checklist:
Introduce a security checklist for every PR (validation, authn/authz, encoding, resource exhaustion, timing attacks; no secrets in VCS; call out deliberate security trade-offs in docs).
Refine AsciiDoc guidance:
:sectnums:and consistent document headers for numbered sections.Update references to the Decision Log and Project Requirements to point to
src/main/docs/decision-log.adocandsrc/main/docs/project-requirements.adoc.CLAUDE.md (new)
Add a dedicated guide for Claude Code when working in this repository:
CodeStructureVerifier(no external inheritance from.internalpackages,Bootstrap.bootstrap()in main methods, etc.).This gives AI agents a project-specific handbook, improving AI-assisted contributions while keeping them aligned with our existing conventions.
Requirements and decision documentation
Decision log (new):
src/main/docs/decision-log.adocIntroduces a central Decision Log for CTF using the Nine-Box taxonomy and the AGENTS.md template.
Records three initial decisions:
Establishes a clear place for future architectural and requirement decisions, improving traceability for both humans and AI tools.
Project requirements refactor:
src/main/adoc/project-requirements.adoc→src/main/docs/project-requirements.adocMoves the requirements into the new
src/main/docstree and aligns the header with AGENTS guidance (:toc:,:sectnums:,:lang: en-GB,:source-highlighter: rouge).Normalises section headings, breaks long paragraphs, and adds explicit anchors (e.g.
[[REQ-FR-CORE-001]]) for individual requirements (FR and NFR).Clarifies and re-flows text for:
The document is now easier to cross-reference from code, ADRs, and PRs.
README.adoc
Adds
:lang: en-GBand:source-highlighter: rougeto the header to match our AsciiDoc conventions.Adds a new “Quality and static analysis” section describing how to run the shared Chronicle quality stack:
mvn -P quality clean verifyfrom an aggregator to run Checkstyle, SpotBugs and coverage checks.mvn -P module-quality clean verifyfrom theChronicle-Test-Frameworkmodule (Java 11+) for module-focused SpotBugs runs.Code quality and style improvements
Javadoc and package-info clean-ups
{@link Metric}/{@link Accumulator}inapimetrics/package-info.javawith fully qualified references to avoid ambiguity.<p>where appropriate (PermutationUtil,internal.processpackage), making the documentation render cleanly.API and implementation tidy-ups
ThrowingConsumerException:serialVersionUIDprivate static final, matching standardSerializablebest practice and avoiding accidental external access.VanillaNamedConsumer:name()as returning@NotNull Stringfor better null-safety signalling.DtoTesterBuilder:DtoTester.Builderinterface signature.Tests and diagnostics
StandardDtoTester:check(...), reducing dead code in the test harness.DelegatesToInternal,DtoAlias,ExampleInternal:@SuppressWarningsand explicit “Intentional no-op” comments to clarify purpose in structure tests.*DemoTestclasses for combinations, permutations, lists, and products:@SuppressWarnings("MappingBeforeCount")where the stream shape is intentional.PermutationTest:DtoTesterDemoTest:Objects.equalsinMyDtoImpl.equalsto clarify null-safe comparison.Testing
mvn -q clean verify(as per the updated AGENTS.md guidance).No behavioural regressions are expected in the core CTF runtime beyond the minor
DtoTester.Buildersignature change; most changes improve documentation, diagnostics, and test harness robustness.