docs: use <repo>/<rel path> links throughout, document the convention
All cross-skill links now spell out the repository: skills-public/foo.md, skills-private/bar.md. These resolve from the shared parent directory, so one spelling works from either repo and from code-languages/ subdirectories — replacing the previous mix of ./, ../ and absolute file:// URLs. Link labels normalised to match. Convention added to the README conventions list. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
72834167b6
commit
58525056a1
10 files changed
+55
-48
No files matched your search
@@ -8,20 +8,20 @@ A collection of public, reusable agent skills, cheatsheets, and operational work
|
|||||||
|
|
||||||
| Skill File | Scope / Topics Covered |
|
| Skill File | Scope / Topics Covered |
|
||||||
| :--- | :--- |
|
| :--- | :--- |
|
||||||
| **[`coding-dev.md`](./coding-dev.md)** | Standing rules for all code work: maximum linter/compiler strictness, never filtering build output, reuse-before-reinvent dependency ordering, file/function size limits, test & regression discipline, verification gates, scope control, commit hygiene, and honest reporting. |
|
| **[`coding-dev.md`](skills-public/coding-dev.md)** | Standing rules for all code work: maximum linter/compiler strictness, never filtering build output, reuse-before-reinvent dependency ordering, file/function size limits, test & regression discipline, verification gates, scope control, commit hygiene, and honest reporting. |
|
||||||
| **[`cli-tooling.md`](./cli-tooling.md)** | Using command-line tools correctly: reading the help tree instead of guessing flags, preferring an existing CLI over an ad-hoc script, non-interactive invocation, machine-readable output formats, orienting on prior work before starting, script placement & symlinking, and care around destructive commands. |
|
| **[`cli-tooling.md`](skills-public/cli-tooling.md)** | Using command-line tools correctly: reading the help tree instead of guessing flags, preferring an existing CLI over an ad-hoc script, non-interactive invocation, machine-readable output formats, orienting on prior work before starting, script placement & symlinking, and care around destructive commands. |
|
||||||
|
|
||||||
### 🔤 Per-Language Rules ([`code-languages/`](./code-languages/))
|
### 🔤 Per-Language Rules ([`code-languages/`](skills-public/code-languages/))
|
||||||
|
|
||||||
| Language | Skill File | Highlights |
|
| Language | Skill File | Highlights |
|
||||||
| :--- | :--- | :--- |
|
| :--- | :--- | :--- |
|
||||||
| **Rust** | [`rust.md`](./code-languages/rust.md) | `--workspace` clippy gate, `[workspace.lints]` single source of truth, no `unwrap`/`unsafe`, core-crate split |
|
| **Rust** | [`rust.md`](skills-public/code-languages/rust.md) | `--workspace` clippy gate, `[workspace.lints]` single source of truth, no `unwrap`/`unsafe`, core-crate split |
|
||||||
| **TypeScript / JavaScript** | [`js-typescript.md`](./code-languages/js-typescript.md) | TS > JSDoc > plain JS, banned constructs table, React & hooks rules, resource lifecycle, sandbox boundaries |
|
| **TypeScript / JavaScript** | [`js-typescript.md`](skills-public/code-languages/js-typescript.md) | TS > JSDoc > plain JS, banned constructs table, React & hooks rules, resource lifecycle, sandbox boundaries |
|
||||||
| **Bash / Shell** | [`bash.md`](./code-languages/bash.md) | `set -euo pipefail`, shellcheck, no wait loops, destructive-command guards, build-gate structure |
|
| **Bash / Shell** | [`bash.md`](skills-public/code-languages/bash.md) | `set -euo pipefail`, shellcheck, no wait loops, destructive-command guards, build-gate structure |
|
||||||
| **Python** | [`python.md`](./code-languages/python.md) | `mypy --strict`, broad ruff rule set, asyncio task discipline, rate-limit queueing |
|
| **Python** | [`python.md`](skills-public/code-languages/python.md) | `mypy --strict`, broad ruff rule set, asyncio task discipline, rate-limit queueing |
|
||||||
| **Go** | [`go.md`](./code-languages/go.md) | strict `golangci-lint` set, concrete types over `interface{}`, context everywhere, CGO-free static builds |
|
| **Go** | [`go.md`](skills-public/code-languages/go.md) | strict `golangci-lint` set, concrete types over `interface{}`, context everywhere, CGO-free static builds |
|
||||||
| **C# / .NET** | [`csharp-dotnet.md`](./code-languages/csharp-dotnet.md) | `TreatWarningsAsErrors`, nullable enabled, no `.Result`, trimming/single-file publish caveats, SDK shims |
|
| **C# / .NET** | [`csharp-dotnet.md`](skills-public/code-languages/csharp-dotnet.md) | `TreatWarningsAsErrors`, nullable enabled, no `.Result`, trimming/single-file publish caveats, SDK shims |
|
||||||
| **C / C++** | [`c-cpp.md`](./code-languages/c-cpp.md) | full warning set + `-Werror`, sanitizers, RAII/Rule of Zero, target-based CMake, FFI ownership |
|
| **C / C++** | [`c-cpp.md`](skills-public/code-languages/c-cpp.md) | full warning set + `-Werror`, sanitizers, RAII/Rule of Zero, target-based CMake, FFI ownership |
|
||||||
|
|
||||||
Each language file extends `coding-dev.md` rather than repeating it. A project's own
|
Each language file extends `coding-dev.md` rather than repeating it. A project's own
|
||||||
`AGENTS.md` / `CLAUDE.md` / `.rules` always overrides both.
|
`AGENTS.md` / `CLAUDE.md` / `.rules` always overrides both.
|
||||||
@@ -47,3 +47,10 @@ These skill documents are compatible across agentic developer assistants and env
|
|||||||
- **Codex**: Include in workspace instructions or agent configuration.
|
- **Codex**: Include in workspace instructions or agent configuration.
|
||||||
- **Antigravity**: Mount or reference from workspace `.agents/skills/` or global `~/.gemini/config/skills/`.
|
- **Antigravity**: Mount or reference from workspace `.agents/skills/` or global `~/.gemini/config/skills/`.
|
||||||
- **Other AI Tools (Cursor, OpenCode, Aider, Devin)**: Include as persistent project rules or context files.
|
- **Other AI Tools (Cursor, OpenCode, Aider, Devin)**: Include as persistent project rules or context files.
|
||||||
|
6. **Link between skills as `<repo>/<relative path>`** — e.g.
|
||||||
|
`` [`cli-tooling.md`](skills-public/cli-tooling.md) `` or
|
||||||
|
`` [`network.md`](skills-private/network.md) ``. Links resolve from the shared parent
|
||||||
|
directory holding both repos, so the same spelling works from either repo and from any
|
||||||
|
subdirectory. Never `./`, `../`, or absolute `file://` paths. The sole exception is the
|
||||||
|
per-agent profile files, which state each repository root once in full, since they are
|
||||||
|
loaded as global instructions with no implied working directory.
|
||||||
+5
-5
@@ -11,7 +11,7 @@ description: >-
|
|||||||
# CLI & Tooling — Discovery, Invocation, and Script Placement
|
# CLI & Tooling — Discovery, Invocation, and Script Placement
|
||||||
|
|
||||||
How to use command-line tools correctly, and where utility scripts belong.
|
How to use command-line tools correctly, and where utility scripts belong.
|
||||||
Companion to [`coding-dev.md`](./coding-dev.md), which covers writing the code itself.
|
Companion to [`coding-dev.md`](skills-public/coding-dev.md), which covers writing the code itself.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -62,7 +62,7 @@ Anything run from a script, a CI job, or an agent must not depend on a human bei
|
|||||||
- **Use the tool's own blocking flag** (`--wait`, `--follow`, `--no-detach`) when you need an
|
- **Use the tool's own blocking flag** (`--wait`, `--follow`, `--no-detach`) when you need an
|
||||||
operation to finish before the next step. Do not build a polling loop around a command that
|
operation to finish before the next step. Do not build a polling loop around a command that
|
||||||
already knows how to wait — and never write a shell `until`/`while` wait loop
|
already knows how to wait — and never write a shell `until`/`while` wait loop
|
||||||
(see [`code-languages/bash.md`](./code-languages/bash.md)).
|
(see [`code-languages/bash.md`](skills-public/code-languages/bash.md)).
|
||||||
- **Prefer a `--dry-run` rehearsal** for anything that deploys, releases, or deletes, when the
|
- **Prefer a `--dry-run` rehearsal** for anything that deploys, releases, or deletes, when the
|
||||||
tool offers one.
|
tool offers one.
|
||||||
- Set `--yes` / `--non-interactive` deliberately and only where the action is genuinely safe —
|
- Set `--yes` / `--non-interactive` deliberately and only where the action is genuinely safe —
|
||||||
@@ -91,7 +91,7 @@ tool list -o csv # structured columns for a spreadsheet or script
|
|||||||
> [!WARNING]
|
> [!WARNING]
|
||||||
> **Never pipe build, lint, or test output through a filter to make it shorter.** That is a
|
> **Never pipe build, lint, or test output through a filter to make it shorter.** That is a
|
||||||
> different situation and the rule there is the opposite — see
|
> different situation and the rule there is the opposite — see
|
||||||
> [`coding-dev.md` §2](./coding-dev.md). Structured output flags are for data; `grep` on
|
> [`coding-dev.md` §2](skills-public/coding-dev.md). Structured output flags are for data; `grep` on
|
||||||
> diagnostics hides warnings.
|
> diagnostics hides warnings.
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -184,6 +184,6 @@ system, not scattered at the repository root.
|
|||||||
---
|
---
|
||||||
|
|
||||||
## 8. Related Skills
|
## 8. Related Skills
|
||||||
- [`coding-dev.md`](./coding-dev.md) — writing the code these tools build and test.
|
- [`coding-dev.md`](skills-public/coding-dev.md) — writing the code these tools build and test.
|
||||||
- [`code-languages/bash.md`](./code-languages/bash.md) — writing the scripts themselves:
|
- [`code-languages/bash.md`](skills-public/code-languages/bash.md) — writing the scripts themselves:
|
||||||
strict mode, quoting, build-gate structure, destructive-command guards.
|
strict mode, quoting, build-gate structure, destructive-command guards.
|
||||||
@@ -8,7 +8,7 @@ description: >-
|
|||||||
|
|
||||||
# Bash / Shell — Rules & Preferences
|
# Bash / Shell — Rules & Preferences
|
||||||
|
|
||||||
Extends [`../coding-dev.md`](../coding-dev.md). Everything there applies; this adds shell specifics.
|
Extends [`coding-dev.md`](skills-public/coding-dev.md). Everything there applies; this adds shell specifics.
|
||||||
|
|
||||||
Bash is for **orchestration** — sequencing tools, wiring a build pipeline, gluing CLIs.
|
Bash is for **orchestration** — sequencing tools, wiring a build pipeline, gluing CLIs.
|
||||||
Once a script grows real data structures, arithmetic, or parsing, it wants to be Python or
|
Once a script grows real data structures, arithmetic, or parsing, it wants to be Python or
|
||||||
@@ -164,12 +164,12 @@ mistakes before a human does.
|
|||||||
Standalone utility scripts belong in a **dedicated, version-controlled scripts directory**,
|
Standalone utility scripts belong in a **dedicated, version-controlled scripts directory**,
|
||||||
symlinked into `PATH` rather than copied there. Never write a loose script directly into
|
symlinked into `PATH` rather than copied there. Never write a loose script directly into
|
||||||
`~/.local/bin` or another `PATH` directory — the source of truth should be one versioned
|
`~/.local/bin` or another `PATH` directory — the source of truth should be one versioned
|
||||||
location. See [`../cli-tooling.md` §5](../cli-tooling.md) for the reasoning and the pattern.
|
location. See [`cli-tooling.md` §5](skills-public/cli-tooling.md) for the reasoning and the pattern.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 10. Related
|
## 10. Related
|
||||||
- [`../coding-dev.md`](../coding-dev.md) — the general rules this extends.
|
- [`coding-dev.md`](skills-public/coding-dev.md) — the general rules this extends.
|
||||||
- [`../cli-tooling.md`](../cli-tooling.md) — invoking other tools *from* these scripts:
|
- [`cli-tooling.md`](skills-public/cli-tooling.md) — invoking other tools *from* these scripts:
|
||||||
discovery, non-interactive flags, structured output.
|
discovery, non-interactive flags, structured output.
|
||||||
- [`python.md`](./python.md) — where a shell script should have become a Python script.
|
- [`python.md`](skills-public/code-languages/python.md) — where a shell script should have become a Python script.
|
||||||
@@ -8,7 +8,7 @@ description: >-
|
|||||||
|
|
||||||
# C / C++ — Rules & Preferences
|
# C / C++ — Rules & Preferences
|
||||||
|
|
||||||
Extends [`../coding-dev.md`](../coding-dev.md). Everything there applies; this adds C/C++ specifics.
|
Extends [`coding-dev.md`](skills-public/coding-dev.md). Everything there applies; this adds C/C++ specifics.
|
||||||
|
|
||||||
C and C++ are for the cases with no better option: existing codebases, hard real-time paths,
|
C and C++ are for the cases with no better option: existing codebases, hard real-time paths,
|
||||||
and FFI boundaries. **For new standalone work, prefer Rust** — the memory-safety guarantees
|
and FFI boundaries. **For new standalone work, prefer Rust** — the memory-safety guarantees
|
||||||
@@ -148,6 +148,6 @@ When exposing C/C++ to another language:
|
|||||||
---
|
---
|
||||||
|
|
||||||
## 9. Related
|
## 9. Related
|
||||||
- [`../coding-dev.md`](../coding-dev.md) — the general rules this extends.
|
- [`coding-dev.md`](skills-public/coding-dev.md) — the general rules this extends.
|
||||||
- [`rust.md`](./rust.md) — the preferred language for new native work, and the usual consumer
|
- [`rust.md`](skills-public/code-languages/rust.md) — the preferred language for new native work, and the usual consumer
|
||||||
of these FFI boundaries.
|
of these FFI boundaries.
|
||||||
@@ -8,7 +8,7 @@ description: >-
|
|||||||
|
|
||||||
# C# / .NET — Rules & Preferences
|
# C# / .NET — Rules & Preferences
|
||||||
|
|
||||||
Extends [`../coding-dev.md`](../coding-dev.md). Everything there applies; this adds .NET specifics.
|
Extends [`coding-dev.md`](skills-public/coding-dev.md). Everything there applies; this adds .NET specifics.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -150,5 +150,5 @@ interface, a type being renamed):
|
|||||||
---
|
---
|
||||||
|
|
||||||
## 9. Related
|
## 9. Related
|
||||||
- [`../coding-dev.md`](../coding-dev.md) — the general rules this extends.
|
- [`coding-dev.md`](skills-public/coding-dev.md) — the general rules this extends.
|
||||||
- [`bash.md`](./bash.md) — for the release pipeline scripts around a .NET build.
|
- [`bash.md`](skills-public/code-languages/bash.md) — for the release pipeline scripts around a .NET build.
|
||||||
@@ -8,7 +8,7 @@ description: >-
|
|||||||
|
|
||||||
# Go — Rules & Preferences
|
# Go — Rules & Preferences
|
||||||
|
|
||||||
Extends [`../coding-dev.md`](../coding-dev.md). Everything there applies; this adds Go specifics.
|
Extends [`coding-dev.md`](skills-public/coding-dev.md). Everything there applies; this adds Go specifics.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -153,5 +153,5 @@ CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o bin/app ./cmd/app
|
|||||||
---
|
---
|
||||||
|
|
||||||
## 10. Related
|
## 10. Related
|
||||||
- [`../coding-dev.md`](../coding-dev.md) — the general rules this extends.
|
- [`coding-dev.md`](skills-public/coding-dev.md) — the general rules this extends.
|
||||||
- [`js-typescript.md`](./js-typescript.md) — for the embedded frontend in a Go service.
|
- [`js-typescript.md`](skills-public/code-languages/js-typescript.md) — for the embedded frontend in a Go service.
|
||||||
@@ -9,7 +9,7 @@ description: >-
|
|||||||
|
|
||||||
# TypeScript / JavaScript — Rules & Preferences
|
# TypeScript / JavaScript — Rules & Preferences
|
||||||
|
|
||||||
Extends [`../coding-dev.md`](../coding-dev.md). Everything there applies; this adds JS/TS specifics.
|
Extends [`coding-dev.md`](skills-public/coding-dev.md). Everything there applies; this adds JS/TS specifics.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -199,5 +199,5 @@ Attach an `AbortController` to every long-lived `fetch` and abort it in cleanup.
|
|||||||
---
|
---
|
||||||
|
|
||||||
## 12. Related
|
## 12. Related
|
||||||
- [`../coding-dev.md`](../coding-dev.md) — the general rules this extends.
|
- [`coding-dev.md`](skills-public/coding-dev.md) — the general rules this extends.
|
||||||
- [`bash.md`](./bash.md) — for the build/release scripts around these projects.
|
- [`bash.md`](skills-public/code-languages/bash.md) — for the build/release scripts around these projects.
|
||||||
@@ -8,7 +8,7 @@ description: >-
|
|||||||
|
|
||||||
# Python — Rules & Preferences
|
# Python — Rules & Preferences
|
||||||
|
|
||||||
Extends [`../coding-dev.md`](../coding-dev.md). Everything there applies; this adds Python specifics.
|
Extends [`coding-dev.md`](skills-public/coding-dev.md). Everything there applies; this adds Python specifics.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -149,5 +149,5 @@ When talking to a rate-limited API (a chat platform, a store, a tracker):
|
|||||||
---
|
---
|
||||||
|
|
||||||
## 10. Related
|
## 10. Related
|
||||||
- [`../coding-dev.md`](../coding-dev.md) — the general rules this extends.
|
- [`coding-dev.md`](skills-public/coding-dev.md) — the general rules this extends.
|
||||||
- [`bash.md`](./bash.md) — for the surrounding build and deploy scripts.
|
- [`bash.md`](skills-public/code-languages/bash.md) — for the surrounding build and deploy scripts.
|
||||||
@@ -8,7 +8,7 @@ description: >-
|
|||||||
|
|
||||||
# Rust — Rules & Preferences
|
# Rust — Rules & Preferences
|
||||||
|
|
||||||
Extends [`../coding-dev.md`](../coding-dev.md). Everything there applies; this adds Rust specifics.
|
Extends [`coding-dev.md`](skills-public/coding-dev.md). Everything there applies; this adds Rust specifics.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -193,5 +193,5 @@ dependencies builds and tests directly on the host, which is seconds instead of
|
|||||||
---
|
---
|
||||||
|
|
||||||
## 11. Related
|
## 11. Related
|
||||||
- [`../coding-dev.md`](../coding-dev.md) — the general rules this extends.
|
- [`coding-dev.md`](skills-public/coding-dev.md) — the general rules this extends.
|
||||||
- [`c-cpp.md`](./c-cpp.md) — when bindgen/FFI crosses into a C library.
|
- [`c-cpp.md`](skills-public/code-languages/c-cpp.md) — when bindgen/FFI crosses into a C library.
|
||||||
+10
-10
@@ -26,17 +26,17 @@ reasons attached, not style trivia — most exist because ignoring them caused a
|
|||||||
> When in doubt about which mode you are in, **ask** — it changes the answer on strictness,
|
> When in doubt about which mode you are in, **ask** — it changes the answer on strictness,
|
||||||
> file size, typing, and test policy all at once.
|
> file size, typing, and test policy all at once.
|
||||||
|
|
||||||
Per-language specifics live in [`code-languages/`](./code-languages/):
|
Per-language specifics live in [`code-languages/`](skills-public/code-languages/):
|
||||||
|
|
||||||
| Language | Rules |
|
| Language | Rules |
|
||||||
| :--- | :--- |
|
| :--- | :--- |
|
||||||
| Rust | [`code-languages/rust.md`](./code-languages/rust.md) |
|
| Rust | [`code-languages/rust.md`](skills-public/code-languages/rust.md) |
|
||||||
| TypeScript / JavaScript | [`code-languages/js-typescript.md`](./code-languages/js-typescript.md) |
|
| TypeScript / JavaScript | [`code-languages/js-typescript.md`](skills-public/code-languages/js-typescript.md) |
|
||||||
| Bash / Shell | [`code-languages/bash.md`](./code-languages/bash.md) |
|
| Bash / Shell | [`code-languages/bash.md`](skills-public/code-languages/bash.md) |
|
||||||
| Python | [`code-languages/python.md`](./code-languages/python.md) |
|
| Python | [`code-languages/python.md`](skills-public/code-languages/python.md) |
|
||||||
| Go | [`code-languages/go.md`](./code-languages/go.md) |
|
| Go | [`code-languages/go.md`](skills-public/code-languages/go.md) |
|
||||||
| C# / .NET | [`code-languages/csharp-dotnet.md`](./code-languages/csharp-dotnet.md) |
|
| C# / .NET | [`code-languages/csharp-dotnet.md`](skills-public/code-languages/csharp-dotnet.md) |
|
||||||
| C / C++ | [`code-languages/c-cpp.md`](./code-languages/c-cpp.md) |
|
| C / C++ | [`code-languages/c-cpp.md`](skills-public/code-languages/c-cpp.md) |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -294,7 +294,7 @@ Run the **whole** gate, not the convenient part of it. A typical full gate:
|
|||||||
|
|
||||||
## 13. Environment & Tooling
|
## 13. Environment & Tooling
|
||||||
|
|
||||||
Full version in [`cli-tooling.md`](./cli-tooling.md); the essentials:
|
Full version in [`cli-tooling.md`](skills-public/cli-tooling.md); the essentials:
|
||||||
|
|
||||||
- **Read `<tool> --help` before using a CLI.** Do not guess flags, and do not write an ad-hoc
|
- **Read `<tool> --help` before using a CLI.** Do not guess flags, and do not write an ad-hoc
|
||||||
script when an existing tool already does the job.
|
script when an existing tool already does the job.
|
||||||
@@ -312,4 +312,4 @@ Full version in [`cli-tooling.md`](./cli-tooling.md); the essentials:
|
|||||||
---
|
---
|
||||||
|
|
||||||
## 14. Related Skills
|
## 14. Related Skills
|
||||||
- [`code-languages/`](./code-languages/) — per-language rules that extend and specialize this document.
|
- [`code-languages/`](skills-public/code-languages/) — per-language rules that extend and specialize this document.
|
||||||
Reference in new issue
Block a user