Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,16 @@ test/ # Unit and integration tests
- Findings types: `found`, `missing`, `info`, `timeout`, `unreachable`
- Unused vars starting with `_` are ignored by ESLint

## ClawHub Publishing

Publish the skill to ClawHub after updating `skills/aeo/SKILL.md`:

```bash
clawhub publish skills/aeo --version <semver> --changelog "<description of changes>"
```

The `--version` flag must be valid semver and should match `package.json`. Include a short changelog summarizing what changed.

## GitHub Actions Conventions

- **Single trigger path per release flow.** If the workflow auto-creates a tag, do not also trigger on that tag pattern — the self-pushed tag will re-fire the workflow, causing a duplicate publish that fails with 403 on npm.
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ainyc/aeo-audit",
"version": "1.2.1",
"version": "1.2.2",
"description": "The most comprehensive open-source Answer Engine Optimization (AEO) audit tool. Scores websites across 13 ranking factors that determine AI citation.",
"type": "module",
"main": "./dist/index.js",
Expand Down
33 changes: 23 additions & 10 deletions skills/aeo/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,13 @@ allowed-tools:
- Bash(pnpm run build)
- Bash(node bin/aeo-audit.js *)
- Read
- Edit
- Write
- Edit(*.html)
- Edit(*.json)
- Edit(*.md)
- Edit(*.txt)
- Edit(*.xml)
- Write(llms.txt)
- Write(llms-full.txt)
- Glob
- Grep
---
Expand All @@ -25,6 +30,14 @@ One skill for audit, fixes, schema, llms.txt, and monitoring workflows.
- Use `npx @ainyc/aeo-audit@latest ...` when auditing a deployed site with the published package.
- If working inside this repository to verify unpublished changes, run `pnpm run build` first and use `node bin/aeo-audit.js ...`.

## Argument Safety

**Never interpolate user input directly into shell commands.** Always:
1. Validate that URLs match `https://` or `http://` and contain no shell metacharacters.
2. Quote every argument individually (e.g., `npx @ainyc/aeo-audit@latest "https://example.com" --format json`).
3. Pass flags as separate, literal tokens — never construct command strings from raw user text.
4. Reject arguments containing characters like `;`, `|`, `&`, `$`, `` ` ``, `(`, `)`, `{`, `}`, `<`, `>`, or newlines.

## Modes

- `audit`: grade and diagnose a site
Expand Down Expand Up @@ -54,11 +67,11 @@ Use for broad requests such as "audit this site" or "why am I not being cited?"

1. Run:
```bash
npx @ainyc/aeo-audit@latest $ARGUMENTS --format json
npx @ainyc/aeo-audit@latest "<url>" [flags] --format json
```
Local repo alternative:
```bash
node bin/aeo-audit.js $ARGUMENTS --format json
node bin/aeo-audit.js "<url>" [flags] --format json
```
2. Return:
- Overall grade and score
Expand All @@ -74,11 +87,11 @@ Use when the user wants code changes applied after the audit.

1. Run:
```bash
npx @ainyc/aeo-audit@latest $ARGUMENTS --format json
npx @ainyc/aeo-audit@latest "<url>" [flags] --format json
```
Local repo alternative:
```bash
node bin/aeo-audit.js $ARGUMENTS --format json
node bin/aeo-audit.js "<url>" [flags] --format json
```
2. Find factors with status `partial` or `fail`.
3. Apply targeted fixes in the current codebase.
Expand All @@ -102,11 +115,11 @@ Use when the request is specifically about JSON-LD or schema quality.

1. Run:
```bash
npx @ainyc/aeo-audit@latest $ARGUMENTS --format json --factors structured-data,schema-completeness,entity-consistency
npx @ainyc/aeo-audit@latest "<url>" [flags] --format json --factors structured-data,schema-completeness,entity-consistency
```
Local repo alternative:
```bash
node bin/aeo-audit.js $ARGUMENTS --format json --factors structured-data,schema-completeness,entity-consistency
node bin/aeo-audit.js "<url>" [flags] --format json --factors structured-data,schema-completeness,entity-consistency
```
2. Report:
- Schema types found
Expand All @@ -128,11 +141,11 @@ Use when the user wants `llms.txt` or `llms-full.txt` created or improved.
If a URL is provided:
1. Run:
```bash
npx @ainyc/aeo-audit@latest $ARGUMENTS --format json --factors ai-readable-content
npx @ainyc/aeo-audit@latest "<url>" [flags] --format json --factors ai-readable-content
```
Local repo alternative:
```bash
node bin/aeo-audit.js $ARGUMENTS --format json --factors ai-readable-content
node bin/aeo-audit.js "<url>" [flags] --format json --factors ai-readable-content
```
2. Inspect existing AI-readable files if present.
3. Extract key content from the site.
Expand Down