Skip to content

docs: add AGENTS.md, CONTRIBUTING.md, PR template; document GCP and self-update#14

Merged
hectorvent merged 2 commits into
mainfrom
docs/agents-contributing-gcp
Jul 7, 2026
Merged

docs: add AGENTS.md, CONTRIBUTING.md, PR template; document GCP and self-update#14
hectorvent merged 2 commits into
mainfrom
docs/agents-contributing-gcp

Conversation

@hectorvent

Copy link
Copy Markdown
Contributor

Summary

Documentation catch-up from a full project review. No code behavior changes — the only workflow edit is a text fix in the release notes body.

  • AGENTS.md (new, tracked) — canonical agent guidance following the AGENTS.md standard: architecture (including a table of the three product trees and the rule that shared-command changes apply to all three), per-tree doctor check structure, native-image constraints, code style rules, and updated scope rules. Self-update is now documented as in scope (it shipped in feat(update): add self-update command with checksum verification  #12) with the constraint that it must never auto-run.
  • CONTRIBUTING.md (new) — prerequisites, build/test commands, Conventional Commits format, hand-maintained Keep-a-Changelog policy, PR guidelines and testing policy, tag-driven release process.
  • .github/pull_request_template.md (new) — includes a "product trees affected" checklist to catch AWS/GCP/Azure copy drift.
  • README — documents the floci gcp command group (shipped since 0.1.3 but entirely absent: quick start, command reference, global flags, floci gcp env variables, CI usage), adds floci update, corrects the fat-JAR requirement to Java 25+, and drops the unwired snapshot save --message flag from examples.
  • CHANGELOG — backfills [Unreleased] with feat(update): add self-update command with checksum verification  #12 (self-update) and fix: align ContainerInfo fields with inspect format template #11 (ContainerInfo field alignment).
  • release.yml — release notes claimed the fat JAR runs on Java 21+, but it is built with --release 25 and throws UnsupportedClassVersionError on 21–24; corrected to Java 25+.

Type of change

  • Docs / chore

Product trees affected

  • N/A (shared infrastructure, docs, CI)

Checklist

  • mvn test passes locally (no code changes)
  • New or updated tests added (or explained below why not needed) — docs only
  • CHANGELOG.md entry added under [Unreleased]
  • README.md updated
  • Native binary verified — N/A, no Jackson/dependency changes
  • Commit messages / PR title follow Conventional Commits

…elf-update

- AGENTS.md (tracked): canonical agent guidance — architecture incl. the
  three product trees table, doctor check structure per tree, native-image
  constraints, code style rules, updated scope rules (self-update now in
  scope, must never auto-run)
- CONTRIBUTING.md: build/test setup, Conventional Commits, hand-maintained
  Keep-a-Changelog policy, PR guidelines, tag-driven release process
- .github/pull_request_template.md: adapted from the server repo with a
  'product trees affected' checklist
- README: document the floci gcp command group (quick start, command
  reference, global flags, gcp env variables, CI usage), floci update,
  Java 25+ fat-JAR requirement; drop the unwired snapshot --message flag
  from examples
- CHANGELOG: backfill [Unreleased] with #12 (self-update) and #11
  (ContainerInfo field alignment); document these docs changes
- release.yml: release notes said the fat JAR needs Java 21+, but it is
  built with --release 25 — corrected to Java 25+
@greptile-apps

greptile-apps Bot commented Jul 7, 2026

Copy link
Copy Markdown

Greptile Summary

Documentation catch-up PR — no code behavior changes. All six files are purely additive docs, a one-line release-notes correction, and a new PR template.

  • AGENTS.md / CONTRIBUTING.md — new files establishing canonical agent guidance (architecture, three product trees, native-image constraints, scope rules) and a contributor guide (build commands, Conventional Commits, changelog policy, release process).
  • README.md — adds the previously undocumented floci gcp command group (quick start, command reference, global flags, env variables, CI snippet), documents floci update, and corrects the fat-JAR Java version requirement from 21+ to 25+ everywhere it appeared.
  • CHANGELOG.md / release.yml — backfills [Unreleased] for self-update (feat(update): add self-update command with checksum verification  #12) and ContainerInfo fix (fix: align ContainerInfo fields with inspect format template #11) using standard Keep a Changelog headings; release notes body updated to match the 25+ correction.

Confidence Score: 5/5

Safe to merge — documentation and a one-line release-notes text fix only; no code paths are touched.

Every changed file is documentation, a CI release-notes string, or a new markdown file. The only executable change is correcting 'Java 21+' to 'Java 25+' in the release workflow body text, which matches the actual build configuration. No logic, tests, or runtime behavior is affected.

No files require special attention.

Important Files Changed

Filename Overview
.github/pull_request_template.md New PR template with product-tree checklist (AWS/GCP/Azure/N/A), type-of-change checkboxes, and Conventional Commits reminder — well aligned with AGENTS.md guidance.
.github/workflows/release.yml Single-line fix correcting the JVM fallback requirement from 'Java 21+' to 'Java 25+' in release notes body, matching the actual --release 25 build flag.
AGENTS.md New canonical agent guidance file covering architecture, three product trees, I/O boundaries, code style, native-image constraints, and scope rules. Comprehensive and internally consistent.
CHANGELOG.md Backfills [Unreleased] with self-update (#12), ContainerInfo fix (#11), and documentation additions; uses standard Keep a Changelog headings (Added, Fixed).
CONTRIBUTING.md New contributor guide covering prerequisites, build/test commands, Conventional Commits format, changelog policy, PR guidelines, testing policy, and the tag-driven release process.
README.md Adds full GCP command group documentation (quick start, command reference, global flags, env variables, CI usage), documents floci update, corrects Java version to 25+, and drops the unwired --message flag from snapshot examples.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    CLI["floci cmd (bare / FlociCli root)"] --> Router{default-product?}
    Router -->|aws default| AWSTree["Root / AWS tree\ncommands/\nGlobalOptions\nlocalhost:4566\nFLOCI_*"]
    Router -->|gcp| GCPTree["GCP tree\ncommands/gcp/\nGcpGlobalOptions\nlocalhost:4588\nFLOCI_GCP_*"]
    Router -->|az| AZTree["Azure tree\ncommands/az/\nAzGlobalOptions\nlocalhost:4577\nFLOCI_AZ_*"]
    AWSTree --> DockerClient["DockerClient\n(docker subprocesses)"]
    GCPTree --> DockerClient
    AZTree --> DockerClient
    AWSTree --> HttpAWS["FlociHttpClient\n/_floci"]
    GCPTree --> HttpGCP["FlociHttpClient\n/_floci-gcp"]
    AZTree --> HttpAZ["FlociHttpClient\n/_floci"]
    DockerClient --> ContainerOps["ContainerInfo / ImageInfo"]
    HttpAWS & HttpGCP & HttpAZ --> Output["Printer → text / JSON / YAML"]
    SharedCmds["Shared commands\n(update, config, completion)"] --> CLI
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    CLI["floci cmd (bare / FlociCli root)"] --> Router{default-product?}
    Router -->|aws default| AWSTree["Root / AWS tree\ncommands/\nGlobalOptions\nlocalhost:4566\nFLOCI_*"]
    Router -->|gcp| GCPTree["GCP tree\ncommands/gcp/\nGcpGlobalOptions\nlocalhost:4588\nFLOCI_GCP_*"]
    Router -->|az| AZTree["Azure tree\ncommands/az/\nAzGlobalOptions\nlocalhost:4577\nFLOCI_AZ_*"]
    AWSTree --> DockerClient["DockerClient\n(docker subprocesses)"]
    GCPTree --> DockerClient
    AZTree --> DockerClient
    AWSTree --> HttpAWS["FlociHttpClient\n/_floci"]
    GCPTree --> HttpGCP["FlociHttpClient\n/_floci-gcp"]
    AZTree --> HttpAZ["FlociHttpClient\n/_floci"]
    DockerClient --> ContainerOps["ContainerInfo / ImageInfo"]
    HttpAWS & HttpGCP & HttpAZ --> Output["Printer → text / JSON / YAML"]
    SharedCmds["Shared commands\n(update, config, completion)"] --> CLI
Loading

Reviews (2): Last reviewed commit: "docs(changelog): use standard Keep a Cha..." | Re-trigger Greptile

Comment thread CHANGELOG.md Outdated
The Documentation section is not one of the six types defined by Keep a
Changelog 1.1.0. New docs (AGENTS.md, CONTRIBUTING.md, README GCP section)
move under Added; the incorrect Java 21+ runtime claim moves under Fixed.
@hectorvent
hectorvent merged commit a2f97ae into main Jul 7, 2026
1 check passed
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