chore: initial scaffold for latprobe CLI tool
Sets up project structure, working conventions (CLAUDE.md), README with the full assignment and roadmap, seeded CHANGELOG, and a buildable Go scaffold (Step 0) with flag parsing and stub probe types. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
41
CLAUDE.md
Normal file
41
CLAUDE.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# CLAUDE.md — Working Conventions
|
||||
|
||||
This file records the conventions Claude must follow throughout this project.
|
||||
|
||||
## Plans
|
||||
|
||||
Every implementation plan is saved under `docs/plans/` with a filename that
|
||||
starts with the **current timestamp in `yyyy-mm-dd-hh-mm` format** followed by
|
||||
a short kebab-case description.
|
||||
|
||||
Example: `docs/plans/2026-07-01-00-08-go-latency-tool.md`
|
||||
|
||||
## Changelog
|
||||
|
||||
Every completed feature is appended to `CHANGELOG.md` at the project root with
|
||||
a **timestamp** and a one-line description of what was added or changed.
|
||||
|
||||
## User Documentation
|
||||
|
||||
Every shipped feature must have a corresponding documentation file under
|
||||
`docs/usage/`. Each file must include:
|
||||
- What the feature does
|
||||
- All relevant flags / arguments
|
||||
- At least one concrete command-line example with expected output
|
||||
|
||||
## Implementation Order
|
||||
|
||||
1. Go implementation — developed first, incrementally, with user sign-off
|
||||
between steps.
|
||||
2. Python port — begins only after the user approves the Go implementation.
|
||||
Its plan is drafted separately at that time.
|
||||
|
||||
## Steps (Go)
|
||||
|
||||
| Step | Description |
|
||||
|------|-------------|
|
||||
| 0 | Scaffold — directory structure, `go.mod`, minimal `main.go` that prints usage |
|
||||
| 1 | Simple total latency — single URL, print wall-clock time of the full request |
|
||||
| 2 | Per-phase breakdown — DNS, TCP connect, TLS, TTFB, transfer, total via `net/http/httptrace` |
|
||||
| 3 | Multiple URLs + sampling — `--count`/`-n` flag, min/avg/max per phase |
|
||||
| 4 | JSON output — `--json` flag; text stays default |
|
||||
Reference in New Issue
Block a user