# SOP: Repository Layout, Navigation & Index Files **Purpose** This SOP defines the standard structure, naming conventions, linking rules, and maintenance practices for the *Book of Secret Knowledge* fork (JK_Revisions branch). The goal is to keep the repo highly navigable on GitHub, consistent across folders, and easy to extend as new categories/tools are added. **Last Updated**: March 2026 **Applies to**: All folders, especially `tools/`, `documentation/`, and root-level files ## 1. Core Principles - **Navigation-first design** — Every folder with >2 subfolders or >3 .md files should have an `INDEX.md` file. - **Hyperlinks everywhere** — All references to files, folders, external sites, GitHub repos, and the schema must be clickable. - **Consistency over perfection** — Use the same patterns (naming, table styles, link formats) across the repo. - **GitHub rendering** — Prefer native markdown features (`
`, tables, relative links) over code blocks for interactive elements. - **Tool tables only** — All tool/resource lists follow [TOOL-TABLE-SCHEMA.md](./TOOL-TABLE-SCHEMA.md) exactly. ## 2. Naming Conventions | File/Folder Type | Recommended Name | Notes / Alternatives | |---------------------------|------------------------|----------------------| | Navigation / overview file| `INDEX.md` | Uppercase `I`. Use this instead of `README.md` in content-heavy folders to distinguish from regular docs. GitHub renders it as folder preview. | | Legacy / old index | `_INDEX.md` or `00_index.md` | Rename → `INDEX.md` when possible for cleaner sorting and visibility. | | Tool/resource list files | Lowercase-with-dashes.md | e.g. `dns-tools.md`, `shell-one-liners.md` | | Personal section | `my-contributions.md` | Keep at `tools/` root | | Schema reference | `TOOL-TABLE-SCHEMA.md` | Root level, never move | **Rule**: Avoid spaces in file names (use `-` or `_`). Encode special characters in links if needed (e.g. `%20` for space, `%26` for &). ## 3. Folder-Level INDEX.md Structure (Minimum Template) Every `INDEX.md` should include: ```markdown # [Category Name] Index Short 1–2 sentence purpose of this folder. All tool tables follow → [TOOL-TABLE-SCHEMA.md](../TOOL-TABLE-SCHEMA.md) ## Sub-categories & Files | Section / Topic | Description | Link | |------------------------------|--------------------------------------------------|------| | Example Subfolder | What it contains | [subfolder/INDEX.md](./subfolder/INDEX.md) | | Example File | Brief note | [example-file.md](./example-file.md) | ### Quick Links / Backlinks - [↑ Back to Tools Overview](../_INDEX.md) (or ../INDEX.md) - [↑ Back to Root README.md](../../README.md) ``` Use `
` for long lists if desired. ## 4. Top-Level README.md Requirements Must contain (at minimum, near the top): - Brief mission/fork statement - `
` collapsible directory structure (indented markdown list with hyperlinks) - **Quick Access** table linking to major entry points - Reference to this SOP and the TOOL-TABLE-SCHEMA Example snippet (update paths as needed): ```markdown
Repository Structure (click to expand) - **tools/** — ... - [_INDEX.md](./tools/_INDEX.md) — ... - ...
### Quick Access | Area | Link | |---------------|--------------------------------------| | Tools | [tools/_INDEX.md](./tools/_INDEX.md) | | ... | ... | ``` ## 5. Linking Rules (Mandatory) | Context | Format / Example | |-----------------------------|----------------------------------------------------------------------------------| | Internal file | `[shell-one-liners.md](./manuals-howtos-guides/shell-one-liners.md)` | | Internal folder | `[diagnostics-troubleshooting/](./network-engineering/diagnostics-troubleshooting/)` | | Schema reference | `[TOOL-TABLE-SCHEMA.md](../TOOL-TABLE-SCHEMA.md)` | | GitHub repo in tool table | `[trimstray/multitool](https://github.com/trimstray/multitool)` | | Official site in tool table | `[Official Site](https://example.com)` or `—` | | Upward navigation | `[↑ Tools Overview](../_INDEX.md)` or `[↑ Root](../../README.md)` | ## 6. Maintenance Checklist (When Adding/Editing) - [ ] Create or update `INDEX.md` in the folder if missing or outdated - [ ] Add relative hyperlinks to all mentioned files/folders - [ ] Ensure tool tables match [TOOL-TABLE-SCHEMA.md](./TOOL-TABLE-SCHEMA.md) columns exactly - [ ] Update parent INDEX.md and top-level README.md if structure changes significantly - [ ] Use `
` for long collapsible sections - [ ] Commit message includes affected areas, e.g. "Add INDEX.md to security/; update README quick links" ## 7. Future Improvements (Nice-to-Have) - Rename `tools/_INDEX.md` → `tools/INDEX.md` - Add file/tool counts to overview tables - Create `all-tools.md` (A–Z consolidated list) if repo grows very large - Add badges (stars, last commit) to README.md - Consider GitHub wiki for very long guides (keep core content in repo) Questions or deviations? Open an issue or PR referencing this SOP. Happy building!