Skip to content

Commit 65f9624

Browse files
committed
Improve curl.md docs surface
1 parent 2cd7a01 commit 65f9624

25 files changed

Lines changed: 757 additions & 56 deletions

AGENT.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ Compatibility pointer for tools that look for a singular `AGENT.md`.
88
`AGENTS.md`.
99
- **User-facing docs:** [`README.md`](README.md) and [`RELEASE.md`](RELEASE.md)
1010
remain authoritative for end users.
11-
- **Agent/curl docs:** [`site/public/llms.txt`](site/public/llms.txt) and
11+
- **Agent/curl docs:** [`site/public/llms.txt`](site/public/llms.txt),
12+
[`site/public/llms-full.txt`](site/public/llms-full.txt), and
1213
[`site/public/docs/index.md`](site/public/docs/index.md) are the
1314
agent-readable public docs entry points derived from the authoritative docs.
1415

@@ -23,7 +24,8 @@ Compatibility pointer for tools that look for a singular `AGENT.md`.
2324
- Backend parity: `uv run python scripts/verify_backend_parity.py`
2425
- Package build: `uv build`
2526
- Docs site build: `cd site && npm install && npm run build`
26-
- Agent/curl.md docs: `site/public/llms.txt` and `site/public/docs/`
27+
- Agent/curl.md docs: `site/public/llms.txt`, `site/public/llms-full.txt`,
28+
and `site/public/docs/`
2729

2830
## Key Rules (short form)
2931

@@ -32,8 +34,9 @@ Compatibility pointer for tools that look for a singular `AGENT.md`.
3234
worklists in examples and tests.
3335
- Keep `README.md`, `docs/SPEC.md`, `CHANGELOG.md`, `MISSING_FEATURES.md`,
3436
and `TODO.md` aligned with any user-visible change.
35-
- Keep `site/public/llms.txt` and `site/public/docs/` aligned when site
36-
navigation, release commands, CLI behavior, or public docs structure changes.
37+
- Keep `site/public/llms.txt`, `site/public/llms-full.txt`, and
38+
`site/public/docs/` aligned when site navigation, release commands, CLI
39+
behavior, or public docs structure changes.
3740

3841
See `AGENTS.md` for the full workflow, post-change checklist, and security
3942
caveats.

AGENTS.md

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
Guidance for coding agents working in this repository. Keep changes consistent
44
with `README.md` and `RELEASE.md`; those are the authoritative user-facing docs.
5-
For terminal/curl workflows, `site/public/llms.txt` and
6-
`site/public/docs/index.md` are the agent-readable docs entry points derived
7-
from the authoritative docs.
5+
For terminal/curl workflows, `site/public/llms.txt`,
6+
`site/public/llms-full.txt`, and `site/public/docs/index.md` are the
7+
agent-readable docs entry points derived from the authoritative docs.
88

99
## Running the Compiler
1010

@@ -25,7 +25,8 @@ checkout without a synced environment.
2525
- Package build: `uv build`
2626
- Docs site build: `cd site && npm install && npm run build`
2727
- Agent/curl.md docs preview: `cd site && npm run build && npm run preview`
28-
then check `/a7-py/llms.txt` and `/a7-py/docs/index.md`.
28+
then check `/a7-py/llms.txt`, `/a7-py/llms-full.txt`, and
29+
`/a7-py/docs/index.md`.
2930

3031
`run_all_tests.sh` is the single source of truth for the full gate (pytest,
3132
parser/semantic/codegen tests, example e2e for Zig and C, backend parity,
@@ -34,9 +35,9 @@ Run it before tagging or before reporting a task as done when changes are
3435
non-trivial.
3536

3637
The public docs site also ships Markdown entry points for agent tooling under
37-
`site/public/llms.txt` and `site/public/docs/`. Keep those files aligned with
38-
`README.md`, `RELEASE.md`, and user-visible site navigation when docs structure
39-
changes.
38+
`site/public/llms.txt`, `site/public/llms-full.txt`, and `site/public/docs/`.
39+
Keep those files aligned with `README.md`, `RELEASE.md`, and user-visible site
40+
navigation when docs structure changes.
4041

4142
## A7 Source Rules
4243

@@ -60,13 +61,15 @@ committing:
6061
3. **docs/SPEC.md** — update if language semantics or syntax changed
6162
4. **MISSING_FEATURES.md** — mark completed gaps or document new ones
6263
5. **TODO.md** — check off completed items or add newly discovered work
63-
6. **site/public/llms.txt** and **site/public/docs/** — update agent/curl.md
64-
entry points if site navigation, release commands, CLI behavior, or public
65-
docs structure changed
64+
6. **site/public/llms.txt**, **site/public/llms-full.txt**, and
65+
**site/public/docs/** — update agent/curl.md entry points if site
66+
navigation, release commands, CLI behavior, or public docs structure
67+
changed
6668

6769
Keep examples and docs aligned across `README.md`, `docs/SPEC.md`,
68-
`CHANGELOG.md`, `MISSING_FEATURES.md`, `TODO.md`, `site/public/llms.txt`, and
69-
`site/public/docs/` — drift between them is treated as a bug.
70+
`CHANGELOG.md`, `MISSING_FEATURES.md`, `TODO.md`, `site/public/llms.txt`,
71+
`site/public/llms-full.txt`, and `site/public/docs/` — drift between them is
72+
treated as a bug.
7073

7174
## Security Caveat
7275

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
4343
native artifact archive paths are absent from `SHA256SUMS`.
4444
- Added release manifest verification so CI and maintainers can re-check
4545
recorded artifact hashes and sizes before upload.
46+
- Expanded curl.md-friendly docs with a full-context aggregate, route aliases,
47+
first-class page metadata, and visible Markdown links from the docs app.
4648

4749
## [0.3.0] - 2026-05-07
4850

CLAUDE.md

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
Project-level guidance for Claude Code. Mirrors `AGENTS.md`; treat that file
44
as the canonical agent guide and keep both in sync. `README.md` and
55
`RELEASE.md` remain the authoritative user-facing docs.
6-
For terminal/curl workflows, `site/public/llms.txt` and
7-
`site/public/docs/index.md` are the agent-readable docs entry points derived
8-
from the authoritative docs.
6+
For terminal/curl workflows, `site/public/llms.txt`,
7+
`site/public/llms-full.txt`, and `site/public/docs/index.md` are the
8+
agent-readable docs entry points derived from the authoritative docs.
99

1010
## Running the Compiler
1111

@@ -25,17 +25,18 @@ the `main.py` wrapper when working from a fresh checkout.
2525
- Package build: `uv build`
2626
- Docs site build: `cd site && npm install && npm run build`
2727
- Agent/curl.md docs preview: `cd site && npm run build && npm run preview`
28-
then check `/a7-py/llms.txt` and `/a7-py/docs/index.md`.
28+
then check `/a7-py/llms.txt`, `/a7-py/llms-full.txt`, and
29+
`/a7-py/docs/index.md`.
2930

3031
`run_all_tests.sh` is the single source of truth for the full gate (pytest,
3132
parser/semantic/codegen tests, example e2e for Zig and C, backend parity,
3233
debug + release artifacts, error-stage matrix, docs style, secrets check).
3334
Run it before reporting a non-trivial task as done.
3435

3536
The public docs site also ships Markdown entry points for agent tooling under
36-
`site/public/llms.txt` and `site/public/docs/`. Keep those files aligned with
37-
`README.md`, `RELEASE.md`, and user-visible site navigation when docs structure
38-
changes.
37+
`site/public/llms.txt`, `site/public/llms-full.txt`, and `site/public/docs/`.
38+
Keep those files aligned with `README.md`, `RELEASE.md`, and user-visible site
39+
navigation when docs structure changes.
3940

4041
## A7 Source Rules
4142

@@ -57,13 +58,14 @@ When language features, backends, or user-facing behavior change, update:
5758
3. `docs/SPEC.md` — language semantics or syntax
5859
4. `MISSING_FEATURES.md` — close or open gaps
5960
5. `TODO.md` — check off or add follow-ups
60-
6. `site/public/llms.txt` and `site/public/docs/` — update agent/curl.md entry
61-
points when site navigation, release commands, CLI behavior, or public docs
62-
structure changes
61+
6. `site/public/llms.txt`, `site/public/llms-full.txt`, and
62+
`site/public/docs/` — update agent/curl.md entry points when site
63+
navigation, release commands, CLI behavior, or public docs structure changes
6364

6465
Keep examples and docs aligned across `README.md`, `docs/SPEC.md`,
65-
`CHANGELOG.md`, `MISSING_FEATURES.md`, `TODO.md`, `site/public/llms.txt`, and
66-
`site/public/docs/` — drift between them is treated as a bug.
66+
`CHANGELOG.md`, `MISSING_FEATURES.md`, `TODO.md`, `site/public/llms.txt`,
67+
`site/public/llms-full.txt`, and `site/public/docs/` — drift between them is
68+
treated as a bug.
6769

6870
## Security Caveat
6971

COMPLETION_AUDIT.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,22 @@ Deliverables implied by the active objective:
2323
| Requirement | Evidence | Status |
2424
| --- | --- | --- |
2525
| Vulnerability/problem review | `RELEASE_READINESS_REVIEW.md`, `SECURITY.md`, `MISSING_FEATURES.md`, `TODO.md` | Covered for current known risks |
26-
| Security dependency audit | Hosted CI run `25524022065`; local `uvx pip-audit --strict`; local site runtime audit | Passing for known advisories |
27-
| Secret scanning | Hosted CI run `25524022065`; `scripts/check_no_secrets.py` | Passing pattern-based scan |
28-
| Python test suite | Hosted CI run `25524022065`; local full gate evidence in `RELEASE_READINESS_REVIEW.md` | Passing |
29-
| Error-stage behavior | Hosted CI run `25524022065`; `scripts/verify_error_stages.py` | Passing |
30-
| Zig example E2E | Hosted CI run `25524022065`; `scripts/verify_examples_e2e.py` | Passing |
31-
| C example E2E | Hosted CI run `25524022065`; `scripts/verify_examples_e2e_c.py` | Passing |
32-
| Zig/C backend parity | Hosted CI run `25524022065`; `scripts/verify_backend_parity.py` | Passing selected suite |
33-
| Debug artifacts | Hosted CI run `25524022065`; `scripts/build_examples.py --profile debug --backend both --clean` | Passing |
34-
| Release artifacts | Hosted CI run `25524022065`; `scripts/build_examples.py --profile release --backend both --clean` | Passing |
35-
| Python package build | Hosted CI run `25524022065`; local clean `rm -rf dist && uv build` | Passing |
26+
| Security dependency audit | Hosted CI run `25525669575`; local `uvx pip-audit --strict`; local site runtime audit | Passing for known advisories |
27+
| Secret scanning | Hosted CI run `25525669575`; `scripts/check_no_secrets.py` | Passing pattern-based scan |
28+
| Python test suite | Hosted CI run `25525669575`; local full gate evidence in `RELEASE_READINESS_REVIEW.md` | Passing |
29+
| Error-stage behavior | Hosted CI run `25525669575`; `scripts/verify_error_stages.py` | Passing |
30+
| Zig example E2E | Hosted CI run `25525669575`; `scripts/verify_examples_e2e.py` | Passing |
31+
| C example E2E | Hosted CI run `25525669575`; `scripts/verify_examples_e2e_c.py` | Passing |
32+
| Zig/C backend parity | Hosted CI run `25525669575`; `scripts/verify_backend_parity.py` | Passing selected suite |
33+
| Debug artifacts | Hosted CI run `25525669575`; `scripts/build_examples.py --profile debug --backend both --clean` | Passing |
34+
| Release artifacts | Hosted CI run `25525669575`; `scripts/build_examples.py --profile release --backend both --clean` | Passing |
35+
| Python package build | Hosted CI run `25525669575`; local clean `rm -rf dist && uv build` | Passing |
3636
| Local package hygiene | `README.md`, `RELEASE.md`, `site/public/docs/release.md` now require `rm -rf dist` before `uv build` | Covered |
3737
| Release checksums | `scripts/generate_release_manifest.py`; `scripts/verify_release_manifest.py`; `test/test_release_tooling.py`; release workflow validates required paths and re-checks hashes before upload | Covered |
38-
| Docs style/build | Hosted CI run `25524022065`; local `scripts/check_docs_style.py`; local `site npm run check` | Passing |
39-
| Docs deploy | Hosted Deploy Docs run `25524022056` | Passing |
40-
| curl.md/agent documentation | `site/public/llms.txt`, `site/public/docs/*.md`, sitemap and robots entries | Implemented |
41-
| Release workflow | `.github/workflows/release.yml`, manual dispatch run `25524734727` | Passing for non-tag validation |
38+
| Docs style/build | Hosted CI run `25525669575`; local `scripts/check_docs_style.py`; local `site npm run check` | Passing |
39+
| Docs deploy | Hosted Deploy Docs run `25525669582` | Passing |
40+
| curl.md/agent documentation | `site/public/llms.txt`, `site/public/llms-full.txt`, `site/public/docs/*.md`, sitemap and robots entries | Implemented |
41+
| Release workflow | `.github/workflows/release.yml`, manual dispatch run `25525956855`; downloaded artifacts verified with `scripts/verify_release_manifest.py` | Passing for non-tag validation |
4242
| PyPI publishing | `.github/workflows/release.yml`, GitHub `pypi` environment documented | Blocked until PyPI project/trusted publisher exists |
4343
| No-recursion language rule | Semantic recursion rejection, docs in `README.md`, `docs/SPEC.md`, and site docs | Implemented for named call cycles |
4444
| No-recursion compiler traversal confidence | Iterative traversal tests and full gate | Covered for tested traversal paths |

RELEASE_READINESS_REVIEW.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@ not factually provable from local tests alone.
6464
docs archive, release example artifact archive, checksum generation, and
6565
release-bundle upload. Downloaded `release-bundles` contained `SHA256SUMS`,
6666
`a7-docs-site.tar.gz`, and `a7-example-artifacts-release.tar.gz`.
67+
- manual release workflow dispatch `25525956855` passed after manifest
68+
verification was added; downloaded release bundles and Python distributions
69+
were reconstructed under `dist/` and verified with
70+
`scripts/verify_release_manifest.py`.
6771
- PyPI currently returns 404 for `https://pypi.org/pypi/a7-py/json`
6872

6973
## Fixed In This Pass
@@ -123,9 +127,9 @@ not factually provable from local tests alone.
123127
- Public docs-site top navigation is reduced and old CLI, stdlib, pipeline, and
124128
testing pages are consolidated into Start, Language, and Compiler sections
125129
with compatibility aliases and verified hash scrolling.
126-
- `llms.txt` and public Markdown docs under `site/public/docs/` provide stable
127-
curl.md/agent entry points for CLI, language, compiler, examples, release,
128-
and status information.
130+
- `llms.txt`, `llms-full.txt`, and public Markdown docs under
131+
`site/public/docs/` provide stable curl.md/agent entry points for CLI,
132+
language, compiler, examples, release, and status information.
129133
- Site metadata, README, robots, and sitemap now consistently use
130134
`https://code5717.github.io/a7-py/`.
131135
- Local release documentation now explicitly cleans `dist/` before package

scripts/check_docs_style.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,11 @@ def iter_doc_paths(root: Path) -> list[Path]:
6868
paths.update(site_pages.rglob("*.md"))
6969
paths.update(site_pages.rglob("*.mdx"))
7070

71+
public_docs = root / "site" / "public"
72+
if public_docs.exists():
73+
paths.update((public_docs / "docs").rglob("*.md"))
74+
paths.update(public_docs.glob("llms*.txt"))
75+
7176
return sorted(paths)
7277

7378

site/index.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@
1010
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
1111
<link href="https://fonts.googleapis.com/css2?family=Instrument+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600;700&family=Newsreader:opsz,wght@6..72,400;6..72,500;6..72,600&display=swap" rel="stylesheet" />
1212
<link rel="canonical" href="https://code5717.github.io/a7-py/" />
13+
<link rel="alternate" type="text/markdown" href="/a7-py/docs/index.md" data-a7-markdown-alternate />
1314
<title>A7 Programming Language</title>
14-
<meta name="description" content="A7 is a statically-typed, procedural language with array programming capabilities, generics, and manual memory management. Compiles to Zig." />
15+
<meta name="description" content="A7 is a small systems language compiler with explicit control flow, no source recursion, clear diagnostics, and Zig/C output." />
1516
<meta property="og:title" content="A7 Programming Language" />
1617
<meta property="og:description" content="A small systems language with explicit control flow, clear diagnostics, and direct compiler output." />
1718
<meta property="og:type" content="website" />

site/public/docs/agent-usage.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Agent Usage
2+
3+
## Fetch Order
4+
5+
For curl.md or other agent fetch workflows, start with:
6+
7+
```text
8+
https://code5717.github.io/a7-py/llms.txt
9+
https://code5717.github.io/a7-py/docs/index.md
10+
https://code5717.github.io/a7-py/llms-full.txt
11+
```
12+
13+
Use `llms.txt` for routing, `docs/index.md` for the navigation tree, and `llms-full.txt` when a single combined context file is more useful than many small fetches.
14+
15+
## Local Source of Truth
16+
17+
- `README.md`: user-facing overview and commands.
18+
- `docs/SPEC.md`: language specification.
19+
- `MISSING_FEATURES.md`: current gaps.
20+
- `TODO.md`: tracked implementation backlog.
21+
- `RELEASE.md`: release workflow and artifact gates.
22+
- `AGENTS.md`: repo workflow for coding agents.
23+
24+
## Preferred Commands
25+
26+
```bash
27+
uv sync
28+
uv run a7 examples/001_hello.a7
29+
PYTHONPATH=. uv run pytest --tb=no -q
30+
uv run python scripts/verify_examples_e2e.py
31+
uv run python scripts/verify_examples_e2e_c.py
32+
uv run python scripts/verify_backend_parity.py
33+
./run_all_tests.sh
34+
```
35+
36+
## Rules For Generated Changes
37+
38+
- Do not write recursive A7 examples or tests.
39+
- Keep `llms.txt`, `llms-full.txt`, and `site/public/docs/` aligned when public docs change.
40+
- Update `CHANGELOG.md`, `README.md`, `docs/SPEC.md`, `MISSING_FEATURES.md`, and `TODO.md` when language behavior changes.
41+
- Treat tests as evidence, not a substitute for reading the code and current hosted workflow state.
42+
43+
## Trust Boundaries
44+
45+
A7 is not a sandbox. Do not compile and run untrusted A7 source on a sensitive host.

site/public/docs/changelog.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Changelog
2+
3+
The canonical changelog is [`CHANGELOG.md`](https://github.com/code5717/a7-py/blob/master/CHANGELOG.md).
4+
5+
## Current Unreleased Focus
6+
7+
- Source recursion is rejected during semantic validation.
8+
- Runnable examples were expanded and rewritten to avoid recursive A7 source.
9+
- Public curl.md-friendly docs and `llms.txt` are available for agents.
10+
- Zig/C backend parity checks were added and expanded.
11+
- Release artifact checksum generation and verification were added.
12+
- The docs site was simplified, dark mode was revised, and fake testimonial content was removed.
13+
14+
## Current Release
15+
16+
`0.3.0` documents release/debug artifact checks, the installed `a7` CLI entrypoint, C backend improvements, example verification, and the current language-core gap list.
17+
18+
## Release Status
19+
20+
Tag-created draft GitHub releases are configured. PyPI Trusted Publishing wiring exists, but final PyPI project trust setup is still required before first publish.

0 commit comments

Comments
 (0)