Index check
Skill HorizonBrute/Horizon_AI_OS/horizon_system/skills_bin/index-check
Run the Horizon AIOS index / context-cascade consistency checker — verifies every skill directory is indexed, every documentation file is indexed, every path pointer and $HORIZON_* variable in the always-loaded context set resolves, and every referenced slash-command exists, then reports passed/warnings/failures. Use when the user types /index-check, asks to "check the indexes", "find dead pointers", "verify the skill indexes", or after adding/renaming/moving a skill, a doc, or an entry in agents.md.From its SKILL.md
npx -y skills add HorizonBrute/Horizon_AI_OS --skill index-checkAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.0 KB, 902 tokens by cl100k_base, as published. Nobody here has run it
Skill: /index-check
Model preference: #lowcost (per horizon_aios_model_prefs.md; overridable by a prompt directive).
Run the read-only Horizon AIOS index/context-cascade consistency check and surface its results. Use this after adding, renaming, or moving a skill directory or a documentation file, after editing agents.md / projects/agents.md / horizon_aios_agents.md / the options-packages cascade, or whenever a $HORIZON_* path or a /slash-command referenced in always-loaded context might have gone stale.
When to invoke
The user types /index-check, or asks you to "check the indexes", "find dead pointers", "verify the skill indexes are in sync", or run a consistency pass after a skill/doc rename or move.
Step-by-step execution
Step 1 — Run the check
python "$HORIZON_SYSTEM/bin/horizon_aios_index_check.py"
Read-only — no elevation required, no arguments needed. Add --json for machine-readable output, --strict to also fail the run on WARN findings.
Step 2 — Report the result
2.1 Relay the VERDICT: {PASS|WARN|FAIL} (pass=N warn=N fail=N info=N) line.
2.2 For each [FAIL] and [WARN], surface the rule ID (IDX-S1, IDX-D1, IDX-D2, IDX-P1, IDX-P2, IDX-C1) and the message verbatim. Do not invent a fix — quote the script's own finding.
2.3 Exit code is 1 if any [FAIL] (or, with --strict, any [WARN]); 0 otherwise. Report success/failure accordingly.
Repair mode (--fix)
python "$HORIZON_SYSTEM/bin/horizon_aios_index_check.py" --fix
Applies only the strictly-safe repair: appending a missing index row for a skill directory that has no row in index.md/index.local.md, using fields read from that skill's own SKILL.md frontmatter (never invented — a field that cannot be read is left as TBD, and a skill whose SKILL.md cannot be read at all is skipped and still reported as a finding). --fix never deletes a row, never rewrites prose, and never touches a documentation file's body.
Rule reference
| Rule | Level | Checks |
|---|---|---|
| IDX-S1 | MUST | Every skill directory under skills_bin//skills_sbin/ has an index row, and every row resolves to a directory. usr_skills/ is exempt (machine-local, not indexed by design). |
| IDX-D1 | MUST | Every .md under documentation/ appears in its folder's *.index.md, and every row resolves to a file. |
| IDX-D2 | WARN | No two docs in the same folder look like near-duplicates by filename. |
| IDX-P1 | MUST | Every path pointer (@-import or backtick $HORIZON_* path) in the always-loaded context set resolves. Known-optional .local./.template targets are exempt. |
| IDX-P2 | MUST | Every $HORIZON_* variable referenced in that context set is exported by sbin/bootstrap.sh. |
| IDX-C1 | MUST | Every /slash-command referenced in that context set resolves to an on-disk skill or an index.local.md row. |
Notes for the executing agent
$HORIZON_SYSTEMmust be set, or pass--horizon-root PATHexplicitly.- This skill is purely diagnostic by default —
--fixis the only mode that writes, and it only ever appends a table row. - Do not reimplement any check — the script is the single source of truth. Run it and format its output.
- If the script itself cannot read a root-owned file (an ACL boundary), it reports that path as a
[WARN]finding rather than crashing — relay it as a blocked item, not a defect in the checker.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most quality gates skills give in 902 tokens
Counted across 1,195 of the 2,094 authors here whose files we hold, read 2026-08-07
- Read the output and check the exit codein 54 of 1195, across 14 files
- Verify requirements using a line-by-line checklistin 53 of 1195, across 12 files
- Identify the verification command proving the claimin 51 of 1195, across 12 files
- Run the full verification commandin 50 of 1195, across 11 files
- Verify output confirms the claimin 49 of 1195, across 12 files
- Check version control diff after agent delegationin 46 of 1195, across 6 files
- State claim with evidencein 44 of 1195, across 4 files
- Run the test suitein 33 of 1195, across 26 files
- Keep state in memory by defaultin 27 of 1195, across 6 files
- Make prototype runnable with one commandin 26 of 1195, across 5 files
- Produce a verification reportin 25 of 1195, across 14 files
- Detect the package manager from lockfilesin 24 of 1195, across 5 files
Said here and by no other author read
- run the consistency check script
- pass --strict to fail on warnings
- relay the verdict line verbatim
- quote each failure and warning verbatim
- report success or failure based on the exit code
- leave missing fields as TBD during fixes
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.