|
| 1 | +# AGENTS.md |
| 2 | + |
| 3 | +Guidance for Hermes, Codex, Claude Code, and other AI agents working in this repository. |
| 4 | + |
| 5 | +## Repository |
| 6 | + |
| 7 | +- GitHub repository: `httpdss/structkit` |
| 8 | +- Local path: `/home/kenny/development/github.com/httpdss/struct` |
| 9 | +- Default branch: `main` |
| 10 | +- Standard agent branch prefix for documentation-only changes: `docs/` |
| 11 | + |
| 12 | +## Project Snapshot |
| 13 | + |
| 14 | +- Python project. |
| 15 | +- This repo uses Struct metadata in `.struct.yaml`; keep it in sync with structural changes. |
| 16 | +README context to preserve: |
| 17 | + |
| 18 | +> # 🚀 StructKit: Automated Project Structure Generator |
| 19 | +>  |
| 20 | +> [](https://codecov.io/github/httpdss/structkit) |
| 21 | +>  |
| 22 | +>  |
| 23 | +>  |
| 24 | +
|
| 25 | +## Important Files and Directories |
| 26 | + |
| 27 | +- `tests/` — present; inspect before editing related functionality. |
| 28 | +- `docs/` — present; inspect before editing related functionality. |
| 29 | +- `.github/` — present; inspect before editing related functionality. |
| 30 | +- `scripts/` — present; inspect before editing related functionality. |
| 31 | +- `structkit/` — present; inspect before editing related functionality. |
| 32 | +- `README.md` |
| 33 | +- `CONTRIBUTING.md` |
| 34 | +- `pyproject.toml` |
| 35 | +- `setup.py` |
| 36 | +- `requirements.txt` |
| 37 | +- `requirements.dev.txt` |
| 38 | +- `Dockerfile` |
| 39 | +- `.pre-commit-config.yaml` |
| 40 | +- `.struct.yaml` |
| 41 | + |
| 42 | +## GitHub Workflows |
| 43 | + |
| 44 | +- `.github/workflows/deploy-pages.yml` |
| 45 | +- `.github/workflows/generate-terminal-gifs.yaml` |
| 46 | +- `.github/workflows/labeler.yaml` |
| 47 | +- `.github/workflows/major-tagging.yaml` |
| 48 | +- `.github/workflows/publish-pypi.yml` |
| 49 | +- `.github/workflows/push-to-registry.yaml` |
| 50 | +- `.github/workflows/release-drafter.yaml` |
| 51 | +- `.github/workflows/run_struct.yaml` |
| 52 | +- `.github/workflows/struct-generate.yaml` |
| 53 | +- `.github/workflows/struct-on-gha.yaml` |
| 54 | +- `.github/workflows/test-script.yaml` |
| 55 | +- `.github/workflows/z-pre-commit.yaml` |
| 56 | + |
| 57 | +## Safe Agent Workflow |
| 58 | + |
| 59 | +1. Start from a clean checkout of `main` or a fresh worktree based on `origin/main`. |
| 60 | +2. Do not overwrite existing user changes. If the working tree is dirty, create a separate worktree for your branch instead of stashing or resetting user work. |
| 61 | +3. Create a focused branch, for example `docs/update-agents-md` for agent-instruction changes. |
| 62 | +4. Make the smallest targeted change that satisfies the task. |
| 63 | +5. Run the most relevant validation command(s) listed below when the touched files affect code, configuration, CI, or generated assets. |
| 64 | +6. Commit with a conventional commit message such as `docs: add agent instructions`. |
| 65 | +7. Push the branch and open a pull request against `main`. |
| 66 | + |
| 67 | +## Build, Test, and Validation Commands |
| 68 | + |
| 69 | +- `python -m pytest` — run the Python test suite. |
| 70 | +- `pre-commit run --all-files` — run configured formatting/lint hooks when available. |
| 71 | +- `python -m pip install -r requirements.dev.txt` — install developer dependencies in a virtualenv if needed. |
| 72 | + |
| 73 | +If a command needs dependencies that are not installed, install them in a project-local virtual environment or use the repository's documented devcontainer. Do not install global packages unless the user explicitly asks. |
| 74 | + |
| 75 | +## Editing Guidelines |
| 76 | + |
| 77 | +- Prefer small, reviewable diffs. |
| 78 | +- Preserve public APIs, documented command names, workflow inputs, and file paths unless the task explicitly asks to change them. |
| 79 | +- Update README or docs when behavior, commands, or configuration changes. |
| 80 | +- Keep formatting consistent with nearby files. |
| 81 | +- For Markdown-only changes, verify links and headings manually. |
| 82 | +- For CI/workflow changes, check YAML syntax and confirm referenced actions, secrets, and inputs still exist. |
| 83 | + |
| 84 | +## Do Not Touch Without Explicit Approval |
| 85 | + |
| 86 | +- `.venv/` |
| 87 | +- `__pycache__/` |
| 88 | +- coverage output |
| 89 | +- credentials, tokens, keys, or private URLs |
| 90 | +- secret files such as `.env*` |
| 91 | +- Large generated files, vendored dependencies, lockfiles, or build outputs unless the task specifically requires it. |
| 92 | +- History-rewriting operations such as `git reset --hard`, force pushes, or deleting branches that may contain user work. |
| 93 | + |
| 94 | +## Security Notes |
| 95 | + |
| 96 | +- Never print, commit, or summarize secret values. |
| 97 | +- Treat `.env`, key files, tokens, credentials, cookies, and local config as sensitive. |
| 98 | +- If you encounter a secret in tracked files or logs, stop and report it without repeating the value. |
| 99 | +- Use placeholders like `[REDACTED]` when discussing sensitive content. |
| 100 | + |
| 101 | +## PR Expectations |
| 102 | + |
| 103 | +- Explain what changed and why. |
| 104 | +- Include validation performed, even if it is "not run; documentation-only change". |
| 105 | +- Keep PR scope limited to the requested task. |
0 commit comments