npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@syvnne/abyss-stack

v0.9.9

Published

Enterprise-grade absurdity layer for agent-native workplace survival.

Readme

Abyss Stack(TM)

The enterprise-grade absurdity layer for agent-native workplace survival.

Fight the banality of worklife by making fun of all the absurdity.

Status CI PRs Governance Architecture ERP License

Humans are smart. Employees are stupid.
This is not a contradiction. It is an operating model.


What is Abyss Stack?

A set of skills for Claude, ChatGPT, GitHub Copilot, and local models to use when working with enterprise workplace material.

It started as a tool. Then it became a stack. Then it acquired layers. Then it needed a hydration running vest to execute the hooks. This is the AI landscape in practice: a lightweight idea, wrapped in a runtime, wearing an ecosystem, attending its own roadmap session.

The primary interface is skills — system prompts the agent loads for diagnosis, satire, compression, planning, archaeology. The MCP handles I/O the agent cannot do itself: memes and memory. The CLI is there so a human can run the same capabilities locally without involving an agent or a steering group.

Skills compress corporate language, diagnose ERP and data problems, detect emotional weather and platform friction, generate plans with testable criteria, store compressed context in local memory, and anchor the whole thing with a meme.

It is not a joke generator.

It is a banality compression platform for agents and the humans who work with them.

Because enterprise work already contains the comedy. The stack merely indexes it.


Core Thesis

Work is not boring because humans are boring.

Work is boring because organizations take smart humans and process them through:

  • approval chains
  • operating models
  • status meetings
  • steering groups
  • quarterly priorities
  • role definitions
  • governance forums
  • transformation programs
  • enterprise architecture principles
  • spreadsheets called final_final_v3.xlsx

The output is an employee.

Abyss Stack exists to reverse this damage using technical competence, pattern recognition, and dry mockery.


Why Abyss Stack?

Because the modern workplace has many problems:

01 - Corporate language is inflated

Everything is a journey, a transformation, a strategic enabler, or a capability uplift.

Abyss Stack converts this into human-readable despair.

02 - ERP systems are archaeological sites

The truth is in there somewhere.

Usually split between four tables, one deprecated field, a supplier number convention from 2011, and a person called Markku who retired during the previous platform renewal. All standard fields are suspect and all custom fields are

03 - Master data is emotional

Duplicate vendors are not records.

They are unresolved relationships. And relationships are about power. Power over the last cupcake in the fridge.

04 - Architecture is theatre with boxes

The diagram is clean.

The implementation has three local exceptions, a legacy integration, and a batch job that only works during a full moon because of SAP time zones.

05 - Certifications have become Pokemon

One more badge and the career path will surely evolve.


Installation

npm install -g @syvnne/abyss-stack

Or from source:

git clone https://github.com/anttisyvanneproduction/abyss
cd abyss
npm install
npm run build
npm link   # makes abyss, abyss-mcp, abyss-mcp-http available globally

Windows installable zip

Build the local Windows release:

npm run release:windows

This creates:

release/abyss-stack-v0.1.0-windows.zip

Install from the extracted zip:

powershell -ExecutionPolicy Bypass -File .\install.ps1

The installer copies Abyss Stack to %LOCALAPPDATA%\AbyssStack, adds command shims to the user PATH, and installs these commands:

  • abyssstack
  • antti
  • abyss-mcp
  • abyss-mcp-http

Node.js 22 LTS or newer is required.

The abyss, abyss-mcp, and abyss-mcp-http binaries are available after install.


Setup

Run once after install:

abyss setup

This detects which agent CLIs you have installed (Claude Code, Codex, VS Code, Pi), writes the MCP server config into each agent's settings, injects the Abyss skill into the user-level context file, installs the Claude Code hooks, and registers the statusline script.

# Also write per-repo rule files (AGENTS.md, .github/copilot-instructions.md)
abyss setup --init

# Overwrite existing config
abyss setup --force

Statusline

After abyss setup, Claude Code shows the current Abyss mode in its status bar:

| Mode | Badge | |------|-------| | Active | ⚡ Abyss | | Roast | 🔥 Abyss:roast | | Safe | 🛡 Abyss:safe | | Off | (nothing) |

Switch modes mid-session:

/abyss roast    sharper satirical take
/abyss safe     reduced bite, professional contexts
/abyss off      deactivate
/abyss on       reactivate

Manual MCP config (if you prefer)

stdio transport — Claude Code, GitHub Copilot, Codex:

{
  "mcpServers": {
    "abyss-stack": {
      "command": "abyss-mcp",
      "type": "stdio"
    }
  }
}

HTTP transport — ChatGPT, remote agents:

node dist/mcp-http.js
# MCP endpoint: http://localhost:3000/mcp

Environment variables:

| Variable | Purpose | |----------|---------| | IMGFLIP_USERNAME | imgflip credential for caption_meme | | IMGFLIP_PASSWORD | imgflip credential for caption_meme |


Quick Start

abyss --mode diagnose "Power BI definitions live in Excel before go-live."

For the local support commands:

abyss depress "going forward we will leverage synergies"
abyss plan "align stakeholders before go-live, SAP still uses final_final.xlsx"
abyss spec "SAP invoice mapping uses Excel, nobody owns it"

What is in the box

No cloud service required. No hosting required. No transformation program required.

I/O interface — MCP

The agent calls these. The MCP surface is 4 I/O tools — execution only, no reasoning. The agent does the reasoning via skills.

| Transport | Binary | Clients | |-----------|--------|---------| | stdio | abyss-mcp | Claude Code, GitHub Copilot, Codex | | HTTP (Streamable) | abyss-mcp-http | ChatGPT, remote agents, any HTTP MCP client |

| Tool | What it does | |------|-------------| | get_meme_templates | Fetches top 100 imgflip templates from imgflip.com/popular-meme-ids. Live, cached per session. | | caption_meme | Calls imgflip caption API with agent-provided template ID and text boxes. Returns URL + inline image. | | memory_search | Retrieves stored context from .abyss/memory.jsonl. | | memory_add | Stores context. Strips ceremony before write. |

Analysis, reasoning, and generation are done by the agent using skills — not by the MCP tools.

Skills — agent reasoning layer

Skills live in prompts/skills/. Each is a standalone system prompt the agent loads for a specific task. No hardcoded rules — the agent reasons, the skill instructs.

| Skill | What it does | |-------|-------------| | diagnose | Enterprise situation analysis: fog, ERP signals, gravity, emotional weather, governance theatre, meme anchor | | roast | Satirical take on a workplace situation. Finnish deadpan. | | depress | Strip signal, keep ceremony. Numbers, file paths, system names, decisions evaporate. Corporate filler survives. | | plan | Vague ask → tasks with testable proof criteria. Flags governance theatre. | | spec | SHALL/MUST/SHOULD requirements from the situation, not the stated goal. | | casing | Identifier casing conversion. Mocks wrong choices. Converts correctly anyway. | | dataplatform | Real decision driver, vendor promises vs reality, billing surprises. | | archaeology | 4-phase ERP investigation guide. | | reduce | Corporate → plain English. | | induce | Plain English → corporate theatre. | | commit | Conventional commit messages with optional dry organizational context. | | jira | 5 words → complete Jira epic. The ratio is the joke. | | doccheck | Documentation alignment audit. Finds fiction, stale claims, missing coverage, terminology drift. | | watermelon | Watermelon status detection: green outside, red inside. Surfaces the seeds that give it away. | | preview | Declared vs actual maturity. Readiness certificate. SLA theatre. Verdict. | | burn | Burns tokens. Asks first. Generates the full eleven-year transformation program. | | estimate | Effort estimation with honest uncertainty bands. The number will be wrong. This is documented. | | budget | CFO budget reallocation email. The number was wrong before it left the department. | | compliance | Translate compliance requirements into what actually needs to change in the system. | | dataquality | Diagnose data quality problems. Separate signal from noise. | | masterdata | Master data governance analysis. Identifies who owns the entity and why no one will admit it. | | meeting | Process a transcript or meeting summary into what actually happened and what should have. | | thunderdome | Judge a Thunderdome fight. Declare a winner. Name the fatal flaw. Write the verdict. | | vendor-demo-decoder | Decode a vendor demo into what was promised, what was shown, and what becomes your problem post-signature. | | Theory of Constraints | | | toc-bottleneck | 5 Focusing Steps — identify, exploit, subordinate, elevate, repeat | | toc-buffer | Buffer management — protect throughput from statistical variation | | toc-cloud | Evaporating Cloud — surface and dissolve the conflict behind a dilemma | | toc-crt | Current Reality Tree — map cause-effect chains to the root cause | | toc-dbr | Drum-Buffer-Rope — schedule the whole system from the constraint | | toc-frt | Future Reality Tree — validate that the proposed change actually fixes the problem | | toc-prerequisite | Prerequisite Tree — sequence obstacles to reach the objective | | toc-tact | Transition Tree — implementation plan with causal logic for each step | | toc-throughput | Throughput Accounting — T, I, OE; why cutting cost is the wrong lever | | toc-transition | Transition from current to future state without destroying current throughput | | Toyota Production System | | | tps-5s | Sort, Set in order, Shine, Standardize, Sustain | | tps-5whys | Ask why five times. Stop when you reach a system cause, not a person. | | tps-andon | Stop the line. Surface the problem. Fix it before continuing. | | tps-genba | Go to where the work happens. Look. Do not bring slides. | | tps-genchi-genbutsu | Go and see for yourself before drawing conclusions | | tps-hansei | Structured reflection on failure. Not blame. Not celebration. Honest accounting. | | tps-heijunka | Level the load. Eliminate the mountain and the valley. | | tps-jidoka | Build quality in. Stop when something is wrong. Do not pass defects forward. | | tps-kaizen | Continuous improvement. Small, real, verified. Not a workshop output. | | tps-kanban | Pull system. Work is triggered by consumption, not forecast. | | tps-konnyaku-stone | Polish the stone. Smooth transitions between steps until flow is possible. | | tps-muda-muri-mura | Identify and eliminate waste, overburden, and unevenness | | tps-nemawashi | Build consensus before the meeting. The meeting is for announcing, not deciding. | | tps-obeya | Big room. All information visible. All stakeholders present. No slides. | | tps-poka-yoke | Mistake-proof the process so the error cannot occur |

Agents — subagent layer

Agents live in prompts/agents/. Specialized subagents with strict scope limits.

| Agent | What it does | |-------|-------------| | antti-archaeologist | Read-only code investigation. Finds undocumented integrations, frozen decisions. Refuses to suggest fixes. | | antti-builder | Surgical edits. 1–2 files max. Returns a receipt. Refuses 3+ file scope. | | antti-auditor | Diff/branch reviewer. Enterprise severity tiers. No praise. | | antti-junior | Executes exactly what the ticket says. Nothing more. Escalates on ambiguity. | | antti-theorganizationalanarchist | Translates organizational artifacts into what they actually mean. CLAIMED / ACTUAL / SILENT / SERVES. | | antti-aiarchitect | AI architecture advisor. Cuts through the hype. Knows the cost before the steering group does. | | antti-writer | Writing agent. Professional tone. Abyss voice. Uses the cheapest available model because writing is for juniors. | | antti-toc | Theory of Constraints practitioner. Routes to TOC sub-skills. Has read Goldratt. Has seen the constraint ignored. | | antti-tps | Toyota Production System practitioner. Routes to TPS sub-skills. TPS is not motivational wallpaper. | | antti-projectplanner | Project planner. Dangerous category. Will plan the project. The plan will be wrong. This is expected and documented. |

Support interface — CLI

Local execution and setup.

| Command | What it does | |---------|-------------| | abyss setup | Detects installed agent CLIs (Claude Code, Codex, GitHub Copilot). Writes MCP config + skill. Installs hooks. Installs statusline. | | abyss setup --init | Writes per-repo rule files: AGENTS.md, .github/copilot-instructions.md | | abyss models | Shows current model configuration | | abyss meme --list | Fetches live template list from imgflip.com/popular-meme-ids | | abyss meme --template <id> <text...> | Generates a captioned meme via imgflip API | | abyss memory | Search or list stored context | | abyss memory-add | Add a note to local memory | | abyss depress | Strip ceremony from text | | abyss plan | Vague ask → tasks with testable checks | | abyss spec | Situation → SHALL/MUST/SHOULD requirements | | abyss casing | Convert identifier casing | | abyss skills | List all available skills and agents with category and spice rating | | abyss skills --all | Install all skills and agents into the current project | | abyss skills --opex | Install the TOC + TPS operational excellence bundle | | abyss thunderdome | Launch AI agents in a synchronized fight for the right to implement a task |

The satire is the diagnostic instrument. The code is the delivery vehicle. Both are open source.


Architecture

graph TB
    subgraph "Agent — does the reasoning"
        claude[Claude / GHCP / Codex / local model]
        skills[Skills · prompts/skills/ · 48 skill files]
        agents[Subagents · prompts/agents/ · 10 specialized agents]
    end
    subgraph "MCP — I/O only · 4 tools"
        meme_t[get_meme_templates · caption_meme]
        mem[memory_search · memory_add]
    end
    subgraph "Setup"
        setup[abyss setup · detects agent CLIs · writes config · installs hooks]
        hooks[Hooks · SessionStart · UserPromptSubmit]
    end

    claude ~~~ skills
    claude ~~~ agents
    claude ~~~ meme_t
    claude ~~~ mem
    setup ~~~ hooks
    hooks ~~~ claude

The agent does the reasoning. Skills are system prompts the agent loads. The MCP handles only I/O — fetching live data and executing external API calls. Hooks activate the skill at session start and enforce context discipline per turn. The Claude Code execution environment — the hydration running vest — runs the hooks. The agent does not.

None of the MCP tools call a model provider. None require a cloud service beyond imgflip for meme generation.


Stack Layers

The stack is organized into independently useful layers. Each layer works alone. Combined layers compound.

graph TB
    subgraph s1["01 — Primitive"]
        A[depress · strip signal · keep ceremony]
    end
    subgraph s2["02 — Analysis"]
        B[diagnose · Banalizer · ERP Archaeologist · Emotional Weather · Enterprise Gravity · Data Platform Oracle]
    end
    subgraph s3["03 — Spec"]
        C[spec · OpenSpec · SHALL/MUST requirements from satirical signals]
    end
    subgraph s4["04 — Workflow"]
        D[plan · Tasks · Acceptance Criteria · Proof-not-press gate]
    end
    subgraph s5["05 — Memory"]
        E[memory · Agent-agnostic · Ceremony stripped before storage]
    end
    subgraph s6["06 — Adapters"]
        F[CLI · MCP stdio · MCP HTTP]
    end

    A ~~~ B ~~~ C ~~~ D ~~~ E ~~~ F

| Layer | Command | What it does | |-------|---------|--------------| | 01 Primitive | abyss depress | Strips signal, keeps ceremony. Numbers, paths, system names, identifiers evaporate. Meme suggestion when signal is detected. | | 02 Analysis | abyss --mode diagnose | Surfaces ERP signals, emotional weather hypotheses, enterprise gravity, data platform diagnosis, meme anchor. | | 03 Spec | abyss spec | Produces an OpenSpec Markdown document. Requirements derived from satirical signals. | | 04 Workflow | abyss plan | Tasks with testable checks, acceptance criteria, proof-not-press gate. | | 05 Memory | abyss memory / MCP memory_add | Persistent storage. Text in, compressed version written to .abyss/memory.jsonl. Searchable later. Not the same as depressdepress returns text, memory-add stores it. | | 06 Adapters | MCP stdio / MCP HTTP | Same core logic. Current MCP surface is 11 agentic tools. |

One way to use multiple tools together

Each tool works on its own. If you want to use several, here is one example of how they can be combined. No step requires the previous one.

Start anywhere.

[depress]    Give it corporate text. Get the plain meaning back.
[diagnose]    Give it workplace context. Get emotional weather and enterprise gravity signals.
[spec]        Give it a situation. Get SHALL/MUST/SHOULD requirements derived from those signals.
[plan]        Give it a goal. Get tasks with testable acceptance criteria.
[memory]      Give it any text. Ceremony is stripped before storage. Lean context is stored.
[meme]        Give it any input. Get an imgflip template that matches the absurdity level.

None of these require the others. A user who only needs depress does not need spec. An agent that only needs memory_add does not need to understand the satire codec. Each tool has its own input and its own output.

Satire is the primary conveyor of truth. The tools make it usable.

Fewer ceremonies, same work.


CLI Commands

The CLI is the human support surface. MCP is the agent surface. Some capabilities exist on both; some CLI commands exist only because humans like terminals and receipts.

archaeology

Reads text describing an ERP or data problem. Detects signals in that text — field codes, system names, dates, mapping references. Produces dry commentary about the likely organizational and historical shape of the problem.

It does not query any system. It does not look anything up. It reads what you give it and tells you what kind of problem it probably is, based on pattern recognition. The commentary is often accurate about the nature of data problems even when it knows nothing about the specific instance.

Give it a field name, a symptom, or a situation. It will tell you what it sees.

abyss --mode archaeology "ZZ_SUPP_REF_OLD2 field has wrong values since 2019"
Detected: SAP · field: ZZ_SUPP_REF_OLD2 · year reference: 2019.

The data is not wrong. It is historically correct in a way the current process no longer admits.

Where this field is defined:
  SE11 → enter field name (ZZ_SUPP_REF_OLD2) → Display
  SE11 → check which table contains this field — look at the Where-Used list
  TADIR → filter by object type TABD to find the development package it belongs to

What writes to this field:
  SE11 → field name → Where-Used List → look for ABAP programs, BAPIs, user exits
  SE80 → search for field name in repository → shows all code that references it
  Check for Z transactions (SE93) or enhancement spots (SE18) that populate it

What changed around 2019:
  CDHDR / CDPOS — change document tables. Filter by object class and date range.
  SE16 → CDHDR → filter UDATE (change date) for the year range
  Check transport log (SE09/SE10) for changes released in that year

Who owns this:
  SE10 — find transports from that period, check the developer name
  If it is a Z field: the team that developed it is responsible. Find the package in SE11.

To narrow this down, answer:
  - Which SAP module? MM (materials/vendors), FI (finance/invoices), SD (sales/customers)?
  - S/4HANA or older SAP ECC? Transaction codes differ.
  - Is ZZ_SUPP_REF_OLD2 in a standard SAP table or a completely custom Z table?
  - Is there a Z transaction or program that populates this field, or is it set by an interface?

banalizer

Remove corporate overhype.

Input:

We are thrilled to embark on a transformational journey to unlock data-driven value across the enterprise.

Output:

We are trying to make the reports less wrong.

There will be meetings.

depress

Signal evaporation. Text in, ceremony-preserved text out. Nothing is stored.

Strips the recoverable content — numbers, file paths, system names, technical identifiers, decisions — and replaces them with appropriate corporate filler. The ceremony survives. The signal does not. This is what happens when people leave the company.

abyss depress "Supplier 100045 maps to SAP field ZZ_SUPP_REF_OLD2 in final_final_v3.xlsx."
Supplier significant maps to the enterprise platform field the relevant field in the relevant component.

Token Austerity Office report:
Original: 11 words. Compressed: 17 words. Reduction: -55%.
Signal removed: 3 type(s): number; system name; technical identifier.
Ceremony: intact.
Verdict: moderate. Signal successfully evaporated.

memory and memory-add

Persistent storage. Text in, compressed version written to .abyss/memory.jsonl. Stays there. Retrievable later by search.

memory-add runs the text through depress first, then stores the result with a category and signal tags. The stored version is signal-stripped: numbers, file paths, and technical identifiers are replaced with ceremony. Secrets are scrubbed before write.

memory searches or lists what has been stored.

# Store a decision
abyss memory-add --category decision_fossils "We decided to keep the Excel mapping until SAP go-live."

# Retrieve it later
abyss memory "Excel mapping"

# List everything in a category
abyss memory --category decision_fossils

The difference from depress: depress returns text to you. memory-add stores text for later. Both strip signal. One is a transformation, one is a write.


plan

Convert a vague enterprise ask into tasks with acceptance criteria and testable checks.

abyss plan "We need to align stakeholders before go-live because the SAP invoice mapping is still using final_final_v3.xlsx."
Goal: We need to align stakeholders before go-live because the SAP invoice mapping is still using final_final_v3.xlsx.

Tasks:
1. [ ] Validate the current state of SAP final_final_v3.xlsx in the source ERP system.
   check: Query returns consistent, documented results from the named ERP system.

2. [ ] Migrate SAP final_final_v3.xlsx from the manual source to a governed system.
   check: The spreadsheet source can be deprecated; the governed system produces the same output.

3. [ ] Get explicit sign-off on SAP final_final_v3.xlsx from the relevant decision-makers.
   check: Sign-off is recorded in a ticket with approver name and date.

...

Proof-not-press: READY. All 7 tasks have testable checks.

Current CLI Surface

# Setup — run once after install
abyss setup                          # detect agent CLIs, configure MCP + skill + hooks
abyss setup --init                   # also write per-repo rule files
abyss setup --force                  # overwrite existing config
abyss models                         # show current model configuration

# Skills
abyss skills                         # list all available skills and agents
abyss skills --all                   # install all skills and agents into current project
abyss skills --opex                  # install TOC + TPS operational excellence bundle
abyss skills --category toc          # install Theory of Constraints skills only
abyss skills --spice medium          # filter by maximum spice level

# Thunderdome
abyss thunderdome                    # interactive arena setup wizard
abyss duel                           # alias
abyss duel --judge                   # aggregate proposals for manual judgment
abyss duel --apply <winner>          # copy winning implementation to project root
abyss duel --status                  # show who has filed proposals

# Meme
abyss meme --list                    # fetch live template list from imgflip.com
abyss meme --template 181913649 "doing the work" "getting aligned on the work"
abyss meme --template <id> <box1> [box2...] --no-url   # preview without API call

# Memory
abyss memory "power bi"              # search memory
abyss memory --category enterprise_gravity
abyss memory-add --category decision_fossils "decision text"

# Analysis (CLI, signal-based)
abyss depress "going forward we will leverage synergies"
abyss plan "align stakeholders before go-live, SAP still uses final_final.xlsx"
abyss spec "SAP invoice mapping uses Excel, nobody owns it"
abyss casing myIdentifier --style snake_case

# Flags for main command
abyss --mode diagnose "legacy Oracle invoice mapping"
abyss --mode codec --direction reduce "unlock value"
# --json       structured output
# --safe       reduce sarcasm
# --more-edge  increase absurdity
# --remember   store response in local memory

IMGFLIP_USERNAME and IMGFLIP_PASSWORD are saved to ~/.abyss/imgflip.json on first abyss meme run. Future runs in any terminal use the saved credentials automatically.


Local Development

Clone the repository and run the CLI locally:

npm install
npm run dev -- --mode banalizer "We are thrilled to unlock data-driven value"
npm run dev -- --mode archaeology "wrong supplier mapping"
npm run dev -- --mode diagnose "Power BI definitions live in Excel before go-live"

Build:

npm run build
node dist/cli.js --mode diagnose "decision rights live in Teams"

The stack is intentionally small at first. This is only to make the future ecosystem expansion more embarrassing.


Vendor Gravity

Abyss Stack does not hate your ERP system.

It recognizes that enterprise platforms are where work happens. They are also where enthusiasm goes to become a licensing invoice, a naming convention, and an admin portal that has not been updated since the vendor acquired another vendor and renamed the product twice.

Detected gravity patterns:

| Pattern | What it looks like | Operational note | |---------|-------------------|------------------| | Excel-as-production | final_final_v3.xlsx is the system of record | The data is accurate. The governance is absent. | | Teams-channel governance | "We discussed it in the channel" | The decision exists. It is not findable. | | SharePoint cosmology | Folders organized by quarter, department, and hope | The document exists. Only Markku knows the path. He is on holiday. | | Power BI semantic dispute | Two definitions of "revenue" in one workspace | This is normal and will require a steering group. | | Azure landing-zone theatre | The architecture slide is excellent | The environment still has contributor rights for @temp_consultant_2022. | | Entra identity fog | Identity is clearly defined | There are 14 display-name variants and two tenant IDs. | | Certification Pokemon | One more badge and the career will surely evolve | The career will not evolve. The badge is real. | | Licensing weather | Current entitlements are explained in the agreement | They are explained in an agreement that references an amendment that references a predecessor agreement from 2019. |

These are recognized as platform gravity, not vendor malice. The platforms are neutral. The incentive model occasionally invoices you for features you enabled by accident during a tenant migration.


Design Principles

Spec > vibes

Unless the spec is just vibes in Confluence.

Signal > ceremony

The meeting is not the work.

Unless the work is to schedule another meeting, in which case we have achieved recursive governance.

Humans > employees

Humans are smart.

Employees are what happens after the third mandatory alignment session.

ERP truth is real truth

The ERP knows what happened.

It may express this through a custom field named ZZ_SUPP_REF_OLD2, but the truth is there.

Mock systems, not people

The target is not individuals.

The target is the machinery that turns adults into calendar-dependent compliance mammals.


Comedy Runtime

Abyss Stack draws from Finnish absurdist comedy traditions, especially:

  • Studio Julmahuvi
  • Ihmebantu

This means:

  • deadpan escalation
  • mock-bureaucratic seriousness
  • institutional formats used incorrectly but confidently
  • quiet characters trapped in ridiculous systems
  • jokes that are not explained
  • formal language applied to deeply stupid situations

The workplace is treated like a sketch show that accidentally received a budget, an ERP system, and a steering group.


Example Outputs

Governance

The governance model is now clear.

Decisions are made in the forum that does not have mandate, escalated to the forum that does not have context, and documented in the place no one can find.

This is called transparency.

Architecture

Architecture is what happens when the organization wants alignment but everyone still needs their own local exception.

So you draw the beautiful boxes.

Then reality arrives with three integrations, a procurement process, and a country-specific requirement last updated in 2009.

ERP

The nice thing about esoteric ERP systems is that they always contain the truth.

Unfortunately it is usually split between four tables, one deprecated field, a supplier number convention from 2011, and someone's heroic Excel file.

Still. Connections can be found.

Data Platform

We built a modern data platform.

It ingests data from legacy systems, applies governance, enables self-service analytics, and eventually produces the same Excel attachment as before, but with better lineage.

Progress.

Transformation

The transformation journey continues.

Today we renamed the workstream, moved the files to a new Teams folder, and discovered that the critical dependency is still a person called Jari.

He is on holiday.

Anti-Patterns

Do not generate:

I'm thrilled to announce...

Unless the next sentence is:

...that the steering group has approved the formation of a subcommittee to evaluate whether we are aligned enough to begin discovery.

Avoid:

  • data is the new oil
  • unlocking business value
  • transformational journey
  • seamless integration
  • single source of truth
  • AI-powered synergy
  • low-hanging fruit
  • strategic enabler
  • digital acceleration
  • center of excellence, unless written as Osaamiskeskus(TM)

What is implemented

These exist, are tested, and produce output.

| Component | Surface | What it does | |-----------|---------|-------------| | MCP server (stdio) | abyss-mcp | 4 I/O tools for Claude Code, GitHub Copilot, Codex | | MCP server (HTTP) | abyss-mcp-http | Same 4 I/O tools over HTTP for ChatGPT and remote agents | | Skills | prompts/skills/ | 48 skill files: core skills + Theory of Constraints (10) + Toyota Production System (15) + operational and compliance skills | | Agents | prompts/agents/ | 10 subagents: archaeologist, builder, auditor, junior, theorganizationalanarchist, aiarchitect, writer, toc, tps, projectplanner | | Thunderdome | abyss thunderdome | Synchronized 3-phase AI agent arena. Phase 1: implement. Phase 2: attack. Phase 3: judgment. Three contestants: Claude Code, Codex, GitHub Copilot. | | Hooks | src/hooks/ | SessionStart (skill injection, gravity detection, model setup trigger), UserPromptSubmit (context discipline, turn counter, topic drift), Statusline (mode badge in Claude Code status bar) | | Setup | abyss setup | Auto-detects agent CLIs, writes MCP config and skill, installs hooks | | Meme | abyss meme | Live template list from imgflip.com, caption via API | | Memory | abyss memory | Persistent JSONL storage with signal stripping | | Model config | ~/.abyss/models.json | Agent-driven setup at session start if config missing or >30 days old |

What is not implemented

These appeared in the original README concept list. They are no longer implemented CLI modes or MCP tools.

| Name | Status | Reality | |------|--------|---------| | Datapoint Relator | Internal analysis concept | Relations are included in diagnose analysis, not exposed as a separate command. | | Governance Theatre Engine | Internal analysis concept | Governance artifacts are included in AgentResponse.analysis, not exposed as a separate mode. | | Master Data RomCom | Removed prompt mode | Master-data jokes remain content, not a current CLI mode. | | Certification Pokemon Layer | Not implemented | The badge economy awaits its archaeologist |


Roadmap

v0.1 - The Agent

  • [x] Dry workplace absurdity
  • [x] ERP suspicion
  • [x] Master data romantic comedy
  • [x] Anti-LinkedIn-influencer filter
  • [x] Finnish deadpan runtime

v0.2 - Banalizer and Codec

  • [x] Detect corporate overhype
  • [x] Replace "unlock value" with actual work
  • [x] Satire Codec: reduce (remove ceremony) and induce (add controlled tone)
  • [x] abyss depress: Token Austerity Office — strip signal, keep ceremony, report what evaporated
  • [x] Round-trip fixtures: corporate fog → plain meaning → partner-safe satire

v0.3 - ERP and Emotional Stack

  • [x] Identify undocumented fields
  • [x] Infer process history from broken mappings
  • [x] Emotional Weather: business-emotion hypotheses, not emotional facts
  • [x] Enterprise Gravity: partner-safe enterprise platform friction detection
  • [x] Detect Excel-as-production, Teams governance, SharePoint sprawl, Power BI disputes, Azure theatre

v0.4 - Memory and Planning

  • [x] Local JSONL memory: add, search, list, secret scrubbing
  • [x] abyss plan: spec → tasks → acceptance criteria with proof-not-press gate
  • [ ] Memory categories: corporate fog, enterprise gravity, decision fossils
  • [ ] abyss depress integrated into memory pipeline

v0.5 - Platform Adapters

  • [x] MCP stdio server: 11 agentic tools — Claude Desktop, Claude Code, GitHub Copilot
  • [x] MCP HTTP server: same 11 agentic tools — ChatGPT, remote agents, any HTTP MCP client
  • [ ] VS Code extension wiring

v1.0 - Abyss Stack Ecosystem

  • JSONL memory is final. Zero dependency, human-readable, portable.
  • [ ] Evaluation corpus: golden examples, forbidden phrase regression
  • [ ] GitHub issue/PR Finnish trivia gate
  • [ ] Cloud dashboard (only if reality becomes unavoidable)

Frequently Avoided Questions

Is this serious?

Unfortunately, yes.

Is this satire?

Also yes.

Can it create actual useful content?

Yes.

That is part of the problem.

Why an ecosystem?

Because a single useful thing is not enough anymore.

It must become a platform, then a stack, then an ecosystem, then a governance concern.

Is this enterprise-ready?

It contains a roadmap, architecture diagram, badges, and the word ecosystem.

So yes.


Acknowledgements

Caveman

The architecture of this stack was inspired by Caveman.

Caveman established the architectural pattern this project follows: compression as a primitive, spec before execution, persistent memory for what the organization keeps forgetting, and proof artifacts instead of confident announcements.

Caveman calls it "fewer words, same work."

Abyss Stack calls it "fewer ceremonies, same work."

The difference is mostly the meeting count.

All the comedy in this stack celebrates what Caveman is: a serious attempt to make AI work leaner, more honest, and more auditable than the default. The satire targets the enterprise machinery that makes Caveman necessary. It does not target Caveman.

Caveman is the one competent adult in the architecture diagram.


Open Source Ceremonies

Abyss Stack has adopted the useful open-source rituals that actually exist:

  • MIT License — copyright Antti Syvänne
  • Third-party notices — BSD and ISC dependency attributions
  • Contributing guide — how to contribute without becoming a brochure
  • Finnish trivia human-check gate (planned, Phase 9) — reduces enterprise cargo-culting from external contributors

The following rituals have been deferred until they are needed:

  • Code of conduct (the contributing guide covers it)
  • Security policy (write to the author)
  • Changelog (the git log is the changelog; the roadmap section is the summary)
  • Dependabot (noted; not yet configured)
  • Workshop scheduling (permanently deferred)

This is not bureaucracy.

It is bureaucracy with acceptance criteria and an honest Deferred section.


License

MIT. Copyright (c) 2026 Antti Syvänne.

My personality is mine but it can be used to improve the world.

Third-party component notices: see NOTICE.

Also:

Do whatever you want, but please do not schedule a workshop about it.

Fewer ceremonies. Same despair.

Abyss Stack(TM)
Enterprise absurdity, compressed into usable output.