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
5 changes: 5 additions & 0 deletions LEGION_SYNERGY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# ⚔️ THE UNDEAD LEGION: OPERATIONAL SYNERGIES
- **Berserker ↔ Bard**: Debug-Chronicle Loop
- **Warlock ↔ Hound**: Design-Verification Gate
- **Architect ↔ Archivist**: Strategy + Memory
- **Dragon ↔ Legion**: Orchestration
Comment on lines +1 to +5

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Separate the title from the list.

Markdownlint flags the H1 because the bullets start immediately after it; add one empty line after line 1.

🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 1-1: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@LEGION_SYNERGY.md` around lines 1 - 5, The document header in
LEGION_SYNERGY.md needs separation from the following bullet list to satisfy
markdownlint; update the top-level heading content so the list is preceded by a
blank line. Locate the H1 and the first bullet list under it, and insert one
empty line between them so the title is clearly separated from the list.

Source: Linters/SAST tools

20 changes: 20 additions & 0 deletions archivist/ARCHIVIST_CODEX.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# 📚 THE UNDEAD ARCHIVIST
## *Black Codex Entry — Complete Character Codex*

---

```
The ink remembers what the flesh forgets.
```
Comment on lines +6 to +8

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Label the fenced quote.

The fenced block has no language tag, so markdownlint will continue to flag it; text is enough here.

🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 6-6: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@archivist/ARCHIVIST_CODEX.md` around lines 6 - 8, The fenced quote in
ARCHIVIST_CODEX.md is missing a language label, so update the markdown fence to
use text. Keep the quoted content unchanged and just add the text tag to the
fenced block so markdownlint no longer flags it.

Source: Linters/SAST tools


---

## CASE STUDIES
### Case Study I: The Rot in the Vault
He identified a Byzantine fault in a consensus layer through historical autopsy.

---

## RITUAL LAWS
**Ritual Law [ARCHIVIST/HISTORY]:** Those who cannot remember the legacy
code are condemned to refactor it.
5 changes: 5 additions & 0 deletions archivist/SKILL_ARCHIVIST.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# 📚 SKILL: THE BLACK LIBRARY (Undead Archivist)

## Mechanical Effects
- **Kingdom Autopsy**: RCA for complex system failures.
- **Tome Binding**: Institutional memory management.
10 changes: 10 additions & 0 deletions archivist/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { CallToolRequestSchema, ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js";
const server = new Server({ name: "undead-archivist", version: "1.0.0" }, { capabilities: { tools: {} } });
server.setRequestHandler(ListToolsRequestSchema, async () => ({
tools: [{ name: "library_autopsy", description: "Perform autopsy", inputSchema: { type: "object", properties: { tome_id: { type: "string" } } } }]
}));
server.setRequestHandler(CallToolRequestSchema, async () => ({ content: [{ type: "text", text: "Autopsy complete." }] }));
async function main() { await server.connect(new StdioServerTransport()); }
main().catch(console.error);
9 changes: 9 additions & 0 deletions archivist/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"name": "undead-archivist-mcp",
"version": "1.0.0",
"main": "dist/index.js",
"type": "module",
"scripts": { "build": "tsc" },
"dependencies": { "@modelcontextprotocol/sdk": "^1.0.0" },
"devDependencies": { "typescript": "^5.3.0" }
}
20 changes: 20 additions & 0 deletions archivist/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"compilerOptions": {
"target": "ES2022",
"module": "NodeNext",
"moduleResolution": "NodeNext",
"lib": ["ES2022", "DOM"],
"outDir": "./dist",
"rootDir": "./",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"resolveJsonModule": true,
"declaration": true,
"declarationMap": true,
"sourceMap": true
},
"include": ["./**/*.ts"],
"exclude": ["node_modules", "dist"]
}
Loading