MAJI-Skills

skill
Security Audit
Warn
Health Pass
  • License — License: NOASSERTION
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 17 GitHub stars
Code Warn
  • Code scan incomplete — No supported source files were scanned during light audit
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

Stop repeating yourself to Claude. 5 collaboration skills — token discipline, scope-drift guards, frustration detection. Measured -18% mean / -28% P90 output tokens. AGPL v3.

README.md

🛠 MAJI Skills

Stop repeating yourself to Claude.

Four patterns that make Claude listen the first time. Save ~75% tokens. Ship without rework. Free.

License: AGPL v3
Claude Code
Methodology

⬇️ Install in 30 seconds · ⭐ Star this repo · 🔗 Share on LinkedIn


🎯 Why You Should Use MAJI Skills

Every Claude Code session, you're fighting the same battles:

  • 😩 Claude extrapolates beyond what you asked — fixes the typo AND refactors three files you didn't want touched
  • 💸 Token bills creep up because Claude responds with paragraphs of preamble before the actual answer
  • 🔁 You have to re-explain your working style every session — Claude forgets you want bullets, not essays
  • 🚨 Claude treats "let's discuss this" as "let's build it now" — and you delete 11 commits to recover
  • 😤 When you say "that's not right", Claude tries variant 2, variant 3 — instead of stopping to ask what you actually want

MAJI Skills fix all of this with a discipline layer that activates on every prompt.

What you get in 30 seconds:

  • ✅ Claude recognises outcome-first prompts and skips the padding
  • Decision modes — discuss / build / pause / pivot — eliminate ambiguity
  • Frustration signals halt Claude instead of doubling down
  • Pre-Action Gate prevents destructive surprises (force pushes, scope creep)
  • ~75% token savings per exchange — banned padding phrases, compression modes, table-first output
  • ✅ Works on any project, any language, any stack
  • ✅ Free, AGPL v3 (strong copyleft), no signup, no telemetry

→ Install now · → See real before/after examples


✨ Skills in this Repo

5 core skills covering the highest-frequency dev workflows — chat, explain, debug, review, commit. Plus 5 experimental skills for less-frequent use cases.

Core Skills (5)

Skill Use case Frequency Tier
maji-mode Foundation discipline (every Claude session) Always 🔴 Tier 1 — Install first
maji-commit Auto-generate git commit messages Daily 🟠 Tier 2 — High daily value
maji-explain Fast layered explanations of code/concepts Daily 🟠 Tier 2
maji-debug 5-step disciplined debug protocol Daily 🟡 Tier 3 — Per task
maji-review Severity-grouped code review Daily 🟡 Tier 3

Experimental Skills (5)

These exist but aren't validated by real-world use yet. See experimental/ folder.

maji-test · maji-doc · maji-refactor · maji-summary · maji-todo

A skill graduates from experimental to core when daily/weekly use is proven and external feedback validates value.

Recommended Install Order

flowchart LR
    T1[🔴 Tier 1<br/>Install first] --> M[maji-mode]
    T2[🟠 Tier 2<br/>High daily value] --> C[maji-commit]
    T2 --> E[maji-explain]
    T3[🟡 Tier 3<br/>Per task] --> D[maji-debug]
    T3 --> R[maji-review]

    style T1 fill:#8B1A1A,stroke:#0A0A0A,color:#FFFFFF
    style T2 fill:#A88838,stroke:#0A0A0A,color:#0A0A0A
    style T3 fill:#0A0A0A,stroke:#0A0A0A,color:#FFFFFF
    style M fill:#F5F1EA,stroke:#0A0A0A
    style C fill:#F5F1EA,stroke:#0A0A0A
    style E fill:#F5F1EA,stroke:#0A0A0A
    style D fill:#F5F1EA,stroke:#0A0A0A
    style R fill:#F5F1EA,stroke:#0A0A0A

Quick start: Install Tier 1 first (maji-mode). Add Tier 2 within first session. Add Tier 3 within first week.

How Skills Compose

maji-mode is the foundation. Other skills inherit its discipline (no preamble, banned phrases, action-verb endings).

flowchart TD
    M([maji-mode<br/>foundation])
    M --> C[maji-commit]
    M --> E[maji-explain]
    M --> D[maji-debug]
    M --> R[maji-review]
    R -.composes with.-> D

    style M fill:#8B1A1A,stroke:#0A0A0A,color:#FFFFFF
    style C fill:#A88838,stroke:#0A0A0A,color:#0A0A0A
    style E fill:#A88838,stroke:#0A0A0A,color:#0A0A0A
    style R fill:#F5F1EA,stroke:#0A0A0A
    style D fill:#F5F1EA,stroke:#0A0A0A

maji-mode — Claude Collaboration Discipline

A discipline layer between you and Claude. Activates 4 patterns that make Claude listen properly the first time — saving tokens, reducing rework, and preventing scope drift.

→ Read the full skill


maji-commit — Auto-generate Commit Messages

Reads your git diff and writes a clean commit message in conventional commits format. No manual typing, no overthinking the wording.

You stage changes → type "maji-commit" → Claude outputs:
feat(auth): add Google OAuth flow

Composes with maji-mode for terse, no-preamble output.

→ Read the full skill


maji-explain — Fast, Layered Explanations

Explains code, libraries, errors, or concepts in 3 layers: 1-sentence answer → 5-bullet detail → deep-dive only on request. No "let me walk you through this".

useEffect runs side effects after a React component renders,
with optional dependency tracking.

Key points:
• Fires after the DOM updates, not during render
• Dependency array controls re-runs
• Return a function to clean up
• Gotcha: stale closures from missed deps

Want deeper detail on dependency arrays or cleanup timing?

→ Read the full skill


maji-debug — Disciplined Debug Protocol

Turns Claude into a debug partner who slows down to think, not a guess-and-check refactor machine. 5-step protocol: read symptom → form hypothesis → verify → Pre-Action Gate → minimum-change fix.

SYMPTOM    TypeError on login.ts:14 — user.email undefined.
HYPOTHESIS API response shape changed; user nested under data.
VERIFICATION Confirmed in api/types.ts — LoginResponse wraps user.
FIX        response.user.email → response.data.user.email
WHY        Aligns with current type. No other consumers.

→ Read the full skill


maji-review — Disciplined Code Review

Reviews a PR, diff, or file and outputs structured feedback grouped by severity. No "Great work overall!" preamble. No trailing "let me know if you'd like to discuss". Just findings.

3 findings: 🔴 2 critical, 🟡 1 important.

🔴 Critical (2)
──────────────
src/auth.ts:3 — SQL injection via string interpolation
src/auth.ts:4 — Plaintext password comparison

🟡 Important (1)
──────────────
src/auth.ts:5 — Static token, not user-bound

Verdict: Block merge. Fix critical findings first.

Composes with maji-mode for evidence-first output.

→ Read the full skill



🧊 Status: Validation Phase

The 5 core skills are frozen for 30 days of real-world validation (started 7 May 2026). No new skills will be added during this window. Existing experimental skills stay in experimental/.

A skill graduates from experimental to core when:

  • Daily/weekly use proven by repo owner
  • 1+ external contribution (PR, issue, testimonial)
  • 30+ days of validation

After validation, decisions made based on real signal — not speculation.


🧠 How maji-mode Works

Click to expand flow diagram
flowchart TD
    A[User Prompt] --> B{maji-mode<br/>active?}
    B -->|No| Z[Standard Claude<br/>response]
    B -->|Yes| C[Read prompt fully]
    C --> D{Identify<br/>Decision Mode}

    D -->|Discuss| E[Plan + ask<br/>clarifying questions]
    D -->|Build| F[Pre-Action Gate]
    D -->|Pause| G[Stop. Wait.]
    D -->|Pivot| H[Strip + redirect.<br/>NO iteration.]

    F --> I{All 4 gate<br/>checks pass?}
    I -->|No| J[ASK before acting]
    I -->|Yes| K[Execute]

    E --> L[Output]
    K --> L
    G --> L
    H --> L
    J --> L

    L --> M{Frustration<br/>signal detected?}
    M -->|Yes| N[STOP. Reconsider.<br/>Don't iterate.]
    M -->|No| O[End with action verb.<br/>Offer next step.]
    N --> C

    style A fill:#F5F1EA,stroke:#0A0A0A,color:#0A0A0A
    style B fill:#A88838,stroke:#0A0A0A,color:#0A0A0A
    style D fill:#A88838,stroke:#0A0A0A,color:#0A0A0A
    style F fill:#8B1A1A,stroke:#0A0A0A,color:#FFFFFF
    style I fill:#8B1A1A,stroke:#0A0A0A,color:#FFFFFF
    style M fill:#8B1A1A,stroke:#0A0A0A,color:#FFFFFF
    style N fill:#8B1A1A,stroke:#0A0A0A,color:#FFFFFF
    style J fill:#A88838,stroke:#0A0A0A,color:#0A0A0A

The 4 patterns:

  1. Outcome before context — say what you want, Claude responds; rationale optional
  2. Mode-tagged prompts — discuss / build / pause / pivot — Claude treats them differently
  3. Frustration recognition — when you signal "wrong direction", Claude halts instead of doubling down
  4. Pre-action confirmation — destructive or scope-expanding actions need explicit OK

📊 Decision Modes Visualised

Click to expand decision modes diagram
flowchart LR
    P[User Prompt] --> M{Decision Mode}
    M -->|"discuss first<br/>propose plan<br/>what do you think"| D[💬 DISCUSS<br/>Plan + clarify]
    M -->|"proceed<br/>ship<br/>approve"| B[⚙️ BUILD<br/>Execute]
    M -->|"hold on<br/>wait<br/>pause"| P2[⏸️ PAUSE<br/>Stop & wait]
    M -->|"drop X<br/>start over<br/>change direction"| PV[🔄 PIVOT<br/>Strip + redirect]

    style P fill:#F5F1EA,stroke:#0A0A0A
    style M fill:#0A0A0A,stroke:#0A0A0A,color:#FFFFFF
    style D fill:#A88838,stroke:#0A0A0A,color:#0A0A0A
    style B fill:#8B1A1A,stroke:#0A0A0A,color:#FFFFFF
    style P2 fill:#3A3A3A,stroke:#0A0A0A,color:#FFFFFF
    style PV fill:#A88838,stroke:#0A0A0A,color:#0A0A0A

🎬 Real Before/After Examples

📌 Example 1 — Building a Feature
sequenceDiagram
    actor U as User
    participant C as Claude
    rect rgb(245, 220, 220)
    Note over U,C: WITHOUT maji-mode
    U->>C: "Hey, I'm thinking maybe we could add a<br/>search feature, what do you think?"
    C->>U: "Great idea! Several considerations:<br/>algorithms, indexing... should I explore first?"
    U->>C: "Sure, I guess..."
    C->>U: "I found these options... which sounds best?"
    Note over U,C: 3 messages, nothing shipped
    end

    rect rgb(220, 245, 220)
    Note over U,C: WITH maji-mode
    U->>C: "Add search to dashboard. Discuss first."
    C->>U: "Client-side filter or full-text DB?<br/>Recommend client-side. Approve?"
    U->>C: "Approve"
    C->>U: ✅ Implementation done
    end

Saved: ~1500 tokens, 3 round-trips, mental overhead.

📌 Example 2 — The "Proceed" Trap

Without maji-mode

User: "Let's proceed phase by phase, plan stories and epics"
Claude: [scaffolds 10 stories, runs npm install, commits 11 times]
User: "Wait, what are you doing?" → has to delete everything.

With maji-mode

User: "Let's proceed phase by phase, plan stories and epics"
Claude: "Reading 'proceed' in discussion context — continuing to plan, not building yet."
No surprise commits.

Saved: ~3 hours and a deleted repo.

📌 Example 3 — Aesthetic Mismatch

Without maji-mode

User: "That doesn't look right"
Claude: "Let me try a different color scheme..." [makes 5 changes]
User: "Still wrong"
Claude: "Let me try yet another approach..." [user rage-quits]

With maji-mode

User: "Not the right vibe"
Claude: "STOP — pivoting completely instead of iterating. Show me 1-2 reference sites with the look you want, or describe in 5 words."
User: "Linear style — minimal, dark, generous spacing" → clean pivot.

Saved: Massive frustration + 5+ wasted attempts.

📌 Example 4 — Destructive Action

Without maji-mode

User: "Clean up old branches"
Claude: [force-deletes branches, resets remote tracking, some unmerged work disappears]

With maji-mode

User: "Clean up old branches"
Claude: "Pre-Action Gate: destructive op detected. Found 12 branches. Show list before delete?"
User reviews → surgical cleanup, no surprise loss.

Saved: Lost work prevention. Trust preserved.

📌 Example 5 — Token Burn

Without maji-mode (~200 tokens of padding alone)

"Great question! That's a really thoughtful approach. Let me think through this carefully and consider the various angles. I appreciate you bringing this up. Here's what I'm thinking..."

With maji-mode

"3 options. Recommend (b). Reason: ships fastest. [table]"

Saved: Across 50 messages = ~10,000 tokens = real $.


💸 Token Economy Math

xychart-beta
    title "Token Cost Per Session"
    x-axis ["Without maji-mode", "With maji-mode", "+ /jimat mode"]
    y-axis "Tokens per exchange" 0 --> 700
    bar [600, 150, 80]
Item Without maji-mode With maji-mode + /jimat mode
Avg prompt+response ~600 tokens ~150 tokens ~80 tokens
Savings per exchange ~75% ~87%
100-message session ~45,000 tokens saved ~52,000 tokens saved
Power user (5 sessions/day) ~$20/day saved on Pro tier ~$23/day saved

📦 Installation

Option 1 — User-level (recommended, applies to all projects)
mkdir -p ~/.claude/skills
git clone https://github.com/Ijam18/MAJI-Skills.git
cp -r MAJI-Skills/maji-mode ~/.claude/skills/
Option 2 — Project-level (single project only)
mkdir -p ./.claude/skills
git clone https://github.com/Ijam18/MAJI-Skills.git
cp -r MAJI-Skills/maji-mode ./.claude/skills/
Option 3 — Always-on (loaded every session, every project)

Append the contents of maji-mode/SKILL.md to your ~/.claude/CLAUDE.md file:

git clone https://github.com/Ijam18/MAJI-Skills.git
cat MAJI-Skills/maji-mode/SKILL.md >> ~/.claude/CLAUDE.md

▶️ Usage

After installation, invoke at the start of any Claude Code session:

/maji-mode

Or it auto-activates via Claude's skill discovery if installed at user-level.

To verify it's active, your prompts should feel:

  • More direct (less preamble)
  • Better at scope (Claude asks before extrapolating)
  • Token-aware (shorter responses by default)

👥 Who benefits most

User type Benefit fit
🚀 Solo founders + indie hackers High
🌊 Vibe-coders (no formal CS) Highest
👨‍💻 Senior devs using AI as pair programmer High
🎨 Designers using Claude for code High
🎓 Teaching contexts High
🛠 Casual / weekend tinkerers Lower (overhead may exceed benefit)

❓ FAQ

How do I verify maji-mode is actually active?

After install, type verify maji-mode in your Claude Code session. You should get a one-line confirmation showing 4 active patterns + current compression mode. If Claude responds with generic text instead, the skill isn't loaded — re-check install path.

Does this slow Claude down?

No. The patterns reduce response length, which means Claude streams faster. You'll feel it especially on /dry and /jimat modes.

Will this work with Cursor / Continue / other AI tools?

The skill format is Claude Code-specific, but the patterns are universal. Copy maji-mode/SKILL.md content into Cursor's .cursor/rules or Continue's system prompt and most patterns transfer. Decision modes, frustration signals, and banned phrases work with any LLM.

Can I customize the patterns? I want some but not others.

Yes — maji-mode/SKILL.md is just text. Fork the repo, edit the file, install your version. Common customizations:

  • Remove banned phrases you don't mind (some users like "Great question!")
  • Adjust compression default (some prefer slightly more verbose by default)
  • Add your own magic phrases vocabulary
  • Translate to your language
Does this work on Claude Pro / Max / API?

Works on any tier that supports Claude Code skills. Token savings matter most on metered API or hitting Pro tier limits — that's where the 75% reduction translates to real $$$.

How do I uninstall?

Delete the skill folder:

rm -rf ~/.claude/skills/maji-mode

Or for project-level: rm -rf ./.claude/skills/maji-mode. If you appended SKILL.md to your ~/.claude/CLAUDE.md, edit that file to remove the section.

Does this send any data anywhere? Telemetry?

No. The skill is a static markdown file Claude reads locally. Zero telemetry, zero phone-home, zero tracking. AGPL v3 licensed — read the file, you'll see.

What if I miss the friendly tone?

The patterns reduce padding but Claude still gives quality answers. If you want some warmth back, invoke compression less aggressively — skip /jimat mode and stick with default. Or fork and adjust the banned phrases list to allow some pleasantries.

Will this conflict with my other skills?

Generally no — maji-mode defines response posture, not domain logic. It composes well with other skills (e.g., a code-review skill, a documentation skill). If you hit conflicts, file an issue with details.

I tried it and it feels too tight. What now?

Two options: (1) skip compression modes (/dry, /jimat) — default maji-mode is already terse but still readable. (2) Fork and remove the strict token discipline section — keep just the 4 patterns (outcome-first, decision modes, frustration signals, Pre-Action Gate) without banned phrases.


🤝 Contributing

PRs welcome. Patterns to add should be:

  • ✅ Universal (not specific to one project / language / domain)
  • ✅ Token-positive (saves tokens, doesn't cost more)
  • ✅ Easy to explain in 1-2 sentences
  • ✅ Backed by a real failure mode the pattern prevents

📜 License

AGPL v3 — strong copyleft. Use, modify, redistribute freely, but:

  • Modifications and derivatives must also be AGPL v3
  • If you run a modified version on a network server (SaaS), users must be able to access the source
  • Cannot bundle in proprietary/closed-source products
  • Must keep copyright notice and license text

See LICENSE.


🌱 About MAJI · Connect

MAJI (Malaysia Artificial Joint Institute) is an Applied AI movement that builds tools, runs workshops, and ships skills for people who want to use AI as a builder — not just a consumer.

Origin: Malaysia. Audience: anyone, anywhere.
Methodology: No Codes, Only Vibes — we don't teach coding, we teach building.

Questions, feedback, or sharing your experience? DMs open:

LinkedIn: Zarul Izham (Ijam)
Threads: @_zarulijam

Tag the repo when sharing — happy to feature builders using maji-mode in the wild.

Reviews (0)

No results found