42 lines
1.4 KiB
Markdown
42 lines
1.4 KiB
Markdown
# AGENTS.md
|
|
|
|
## Overview
|
|
|
|
`have` is a tiny compiled Zig CLI that lists executable command names available
|
|
through `PATH`. It exists as an agent-safe availability primitive for comparing a
|
|
run-tool allowlist against what the local Unix system can actually execute.
|
|
|
|
## How to build
|
|
|
|
```sh
|
|
zig build
|
|
```
|
|
|
|
## How to test
|
|
|
|
```sh
|
|
zig build test
|
|
```
|
|
|
|
## Constraints
|
|
|
|
- One source file: `have.zig`.
|
|
- POSIX-shaped: inspect `PATH` directories and executable bits only.
|
|
- No package-manager knowledge, shell builtins, aliases, functions, login shells,
|
|
network access, mutation, config files, JSON default, color, pager, or daemon
|
|
behavior.
|
|
- stdout is one command name per line; diagnostics go to stderr.
|
|
- This is an inspection primitive. Keep OS/package inventory in separate tools if
|
|
it is ever needed.
|
|
|
|
## Requirement Governance
|
|
|
|
`REQUIREMENTS.md` is the requirement authority for this repository and is checked
|
|
with `redgate`. Before implementation work, read the applicable requirement row;
|
|
if none covers durable behavior, update `REQUIREMENTS.md` first or stop and ask.
|
|
For behavior intended to stick, add or update a failing smoke/contract proof
|
|
before implementation unless that would be fake or disproportionate. Before
|
|
handoff, compare the user request and diff against `REQUIREMENTS.md`; report
|
|
`REQUIREMENT IMPACT: updated <rows>` or exactly
|
|
`REQUIREMENT IMPACT: none - <specific reason>`.
|