Agent skill

Adr Knowledge

by dykyi-roman in dykyi-roman/awesome-claude-code

Action-Domain-Responder pattern knowledge base. An agent skill from dykyi-roman/awesome-claude-code.

MITAuto-check passedDevelopment

Install Adr Knowledge

skills CLI
$ npx skills add dykyi-roman/awesome-claude-code --skill adr-knowledge -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install dykyi-roman/awesome-claude-code adr-knowledge --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/dykyi-roman/awesome-claude-code.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/adr-knowledge .claude/skills/adr-knowledge && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
adr-knowledge
GitHub stars
103
Token cost
~2.4k tokens
SKILL.md length
370 words
Files
7 (incl. references, assets)
Skills in repo
11
Repo updated
First seen
Licence
MIT

At a glance

Action-Domain-Responder pattern knowledge base. An agent skill from dykyi-roman/awesome-claude-code.

  • Works in 3 steps: Fat Action (Critical) → Anemic Responder (Warning) → Smart Responder (Critical)
  • Tasks that involve Architecture decision records
  • SKILL.md covers Core Principles, ADR vs MVC Comparison, Quick Checklists and Common Violations Quick…, plus 8 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Adr Knowledge is an agent skill from dykyi-roman/awesome-claude-code. Action-Domain-Responder pattern knowledge base. Provides patterns, antipatterns, and PHP-specific guidelines for ADR (web-specific MVC alternative) audits.

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including reference files and assets (for example `assets/report-template.md`, `references/action-patterns.md` and `references/antipatterns.md`).

It sits in Development, covering Architecture decision records and Knowledge bases. It works with PHP. The repository describes itself as: PHP Architecture Toolkit for Claude Code (DDD, CQRS, Event Sourcing, Hexagonal, Clean Architecture, SOLID, GRASP, PSR, Design Patterns, Testing, Documentation, Code Review). The licence is MIT.

When your agent uses it

  • Tasks that involve Architecture decision records
  • Tasks that involve Knowledge bases

Example prompts

  • “/adr-knowledge”

Workflow steps

3 steps, taken from the step headings in SKILL.md.

  1. Fat Action (Critical)
  2. Anemic Responder (Warning)
  3. Smart Responder (Critical)

What it can do on your machine

Read from SKILL.md and the folder at commit 7e1fea8. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are php and bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Adr Knowledge loads about 2.4k tokens when it runs, and up to ~15k if it reads all its reference files. Until then it costs about 42 tokens; SKILL.md has 370 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~42
When it runs · the whole SKILL.md, loaded when a task matches
~2.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~15k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from dykyi-roman/awesome-claude-code at commit 7e1fea8, republished under its MIT licence (© dykyi-roman). 370 words, ~2,387 tokens.

Download SKILL.mdSave it as .claude/skills/adr-knowledge/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.
name
adr-knowledge
description
Action-Domain-Responder pattern knowledge base. Provides patterns, antipatterns, and PHP-specific guidelines for ADR (web-specific MVC alternative) audits.

ADR Knowledge Base

Quick reference for Action-Domain-Responder pattern and PHP implementation guidelines.

Core Principles

ADR Components
HTTP Request → Action (collects input)
                 ↓
              Domain (executes business logic)
                 ↓
             Responder (builds HTTP Response)
                 ↓
           HTTP Response

Rule: One action = one HTTP endpoint. Responder builds the COMPLETE response.

Component Responsibilities
ComponentResponsibilityContains
ActionCollects input, invokes Domain, passes to ResponderRequest parsing, DTO creation, UseCase invocation
DomainBusiness logic (same as DDD Domain/Application)Entities, Value Objects, UseCases, Services
ResponderBuilds HTTP Response (status, headers, body)Response building, template rendering, content negotiation

ADR vs MVC Comparison

AspectMVC ControllerADR Action
GranularityMultiple actionsSingle action per class
Response buildingMixed in controllerSeparate Responder class
HTTP concernsScatteredIsolated in Responder
TestabilityLower (many concerns)Higher (single responsibility)
File structureFew large filesMany focused files

Quick Checklists

Action Checklist
  • Single __invoke() method
  • No new Response() or response building
  • No business logic (if/switch on domain state)
  • Only input parsing and domain invocation
  • Returns Responder result
Responder Checklist
  • Receives domain result only
  • Builds complete HTTP Response
  • Handles content negotiation
  • Sets status codes based on result
  • No domain/business logic
  • No database/repository access
Domain Checklist
  • Same as DDD Domain/Application layers
  • No HTTP/Response concerns
  • Returns domain objects (not HTTP responses)
  • Pure business logic

Common Violations Quick Reference

ViolationWhere to LookSeverity
new Response() in Action*Action.phpCritical
->withStatus() in Action*Action.phpCritical
if ($result->isError()) in Action*Action.phpWarning
$repository-> in Responder*Responder.phpCritical
$service-> in Responder*Responder.phpCritical
Multiple public methods in Action*Action.phpWarning
Template logic in Action*Action.phpWarning
Show full SKILL.md (132 more words)Show less

PHP 8.4 ADR Patterns

Action Pattern
php
<?php

declare(strict_types=1);

namespace Presentation\Api\User\Create;

use Application\User\UseCase\CreateUser\CreateUserUseCase;
use Application\User\UseCase\CreateUser\CreateUserInput;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;

final readonly class CreateUserAction
{
    public function __construct(
        private CreateUserUseCase $useCase,
        private CreateUserResponder $responder,
    ) {
    }

    public function __invoke(ServerRequestInterface $request): ResponseInterface
    {
        $input = $this->parseInput($request);
        $result = $this->useCase->execute($input);

        return $this->responder->respond($result);
    }

    private function parseInput(ServerRequestInterface $request): CreateUserInput
    {
        $body = (array) $request->getParsedBody();

        return new CreateUserInput(
            email: $body['email'] ?? '',
            name: $body['name'] ?? '',
        );
    }
}
Responder Pattern
php
<?php

declare(strict_types=1);

namespace Presentation\Api\User\Create;

use Application\User\UseCase\CreateUser\CreateUserResult;
use Psr\Http\Message\ResponseFactoryInterface;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\StreamFactoryInterface;

final readonly class CreateUserResponder
{
    public function __construct(
        private ResponseFactoryInterface $responseFactory,
        private StreamFactoryInterface $streamFactory,
    ) {
    }

    public function respond(CreateUserResult $result): ResponseInterface
    {
        if ($result->isFailure()) {
            return $this->error($result->error());
        }

        return $this->success($result->userId());
    }

    private function success(string $userId): ResponseInterface
    {
        return $this->json(['id' => $userId], 201);
    }

    private function error(string $message): ResponseInterface
    {
        return $this->json(['error' => $message], 400);
    }

    private function json(array $data, int $status): ResponseInterface
    {
        $body = $this->streamFactory->createStream(
            json_encode($data, JSON_THROW_ON_ERROR)
        );

        return $this->responseFactory->createResponse($status)
            ->withHeader('Content-Type', 'application/json')
            ->withBody($body);
    }
}

Detection Patterns

Action Detection
bash
# Find Action classes
Glob: **/*Action.php
Glob: **/Action/**/*.php
Grep: "implements.*ActionInterface|extends.*Action" --glob "**/*.php"

# Detect Action pattern usage
Grep: "public function __invoke.*Request" --glob "**/*Action.php"
Responder Detection
bash
# Find Responder classes
Glob: **/*Responder.php
Glob: **/Responder/**/*.php
Grep: "implements.*ResponderInterface" --glob "**/*.php"

# Detect Responder pattern usage
Grep: "public function respond" --glob "**/*Responder.php"
Violation Detection
bash
# Response building in Action (Critical)
Grep: "new Response|->withStatus|->withHeader|->withBody" --glob "**/*Action.php"

# Business logic in Action (Warning)
Grep: "if \(.*->status|switch \(|->isValid\(\)" --glob "**/*Action.php"

# Domain calls in Responder (Critical)
Grep: "Repository|Service|UseCase" --glob "**/*Responder.php"

# Multiple public methods in Action (Warning)
Grep: "public function [^_]" --glob "**/*Action.php" | wc -l

File Structure

src/
├── Presentation/
│   ├── Api/
│   │   └── {Context}/
│   │       └── {Action}/
│   │           ├── {Action}Action.php
│   │           ├── {Action}Responder.php
│   │           └── {Action}Request.php (optional DTO)
│   ├── Web/
│   │   └── {Context}/
│   │       └── {Action}/
│   │           ├── {Action}Action.php
│   │           ├── {Action}Responder.php
│   │           └── templates/ (for HTML)
│   └── Shared/
│       ├── Action/
│       │   └── ActionInterface.php
│       └── Responder/
│           └── ResponderInterface.php
├── Application/
│   └── {Context}/
│       └── UseCase/
│           └── {Action}/
│               ├── {Action}UseCase.php
│               ├── {Action}Input.php
│               └── {Action}Result.php
└── Domain/
    └── ...
Alternative Structure (Feature-Based)
src/
├── User/
│   ├── Presentation/
│   │   ├── CreateUser/
│   │   │   ├── CreateUserAction.php
│   │   │   └── CreateUserResponder.php
│   │   └── GetUser/
│   │       ├── GetUserAction.php
│   │       └── GetUserResponder.php
│   ├── Application/
│   │   └── ...
│   └── Domain/
│       └── ...

Integration with DDD

ADR fits naturally with DDD layering:

ADRDDD LayerNotes
ActionPresentationEntry point for HTTP
ResponderPresentationExit point for HTTP
DomainDomain + ApplicationBusiness logic via UseCases

PSR Integration

ADR works with PSR-7/PSR-15:

PSRUsage
PSR-7Request/Response interfaces
PSR-15Middleware for cross-cutting concerns
PSR-17Response/Stream factories in Responder

Antipatterns

1. Fat Action (Critical)
php
// BAD: Action doing too much
class CreateUserAction
{
    public function __invoke(Request $request): Response
    {
        $data = $request->getParsedBody();

        // Validation in Action
        if (empty($data['email'])) {
            return new Response(400, [], 'Email required');
        }

        // Business logic in Action
        $user = new User($data['email']);
        $this->repository->save($user);

        // Response building in Action
        return new Response(201, [], json_encode(['id' => $user->id()]));
    }
}
2. Anemic Responder (Warning)
php
// BAD: Responder not doing its job
class CreateUserResponder
{
    public function respond($data): Response
    {
        return new Response(200, [], json_encode($data));
    }
}
3. Smart Responder (Critical)
php
// BAD: Responder with business logic
class CreateUserResponder
{
    public function respond(User $user): Response
    {
        // Domain logic in Responder!
        if ($user->isAdmin()) {
            $this->notificationService->notifyAdmins();
        }

        return $this->json(['id' => $user->id()], 201);
    }
}

References

For detailed information, load these reference files:

  • references/action-patterns.md — Action class patterns and best practices
  • references/responder-patterns.md — Responder class patterns
  • references/domain-integration.md — Integration with DDD Domain layer
  • references/mvc-comparison.md — Detailed MVC vs ADR comparison
  • references/antipatterns.md — Common ADR violations with examples

Assets

  • assets/report-template.md — ADR audit report template

© dykyi-roman, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 6 other files (references, assets) in skills/adr-knowledge of dykyi-roman/awesome-claude-code.

  • SKILL.md
  • assets/report-template.md
  • references/action-patterns.md
  • references/antipatterns.md
  • references/domain-integration.md
  • references/mvc-comparison.md
  • references/responder-patterns.md

Open the folder on GitHubat commit 7e1fea8

Compare with similar skills

Adr Knowledge next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Adr Knowledge compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Adr Knowledge this skilldykyi-roman/awesome-claude-code103—~2.4kAutomated safety check: PassMIT
Capture Knowledgeadamayoung/TMDb178—~2.3kAutomated safety check: PassApache-2.0
Obsidian WriterAtmosphere/atmosphere3.8k—~2.6kAutomated safety check: PassApache-2.0
Nexus MapperHaaaiawd/Nexus-skills166—~2.5kAutomated safety check: NotesNone
Plan TreeSeemSeam/claude_codex_bridge3.6k—~6.3kAutomated safety check: PassCustom licence
Nexus QueryHaaaiawd/Nexus-skills166—~1.1kAutomated safety check: PassNone

Similar skills

  • Capture Knowledge

    adamayoung/TMDb

    Records non-obvious lessons from a finished task, such as gotchas, API quirks and design decisions, into a project's knowledge folder before a pull request opens.

    178 GitHub stars~2.3k tokensUpdated 6 days ago
    DevelopmentAuto-check passed
  • Obsidian Writer

    Atmosphere/atmosphere

    Write well-formatted notes to the atmosphere-vault Obsidian knowledge base.

    3.8k GitHub stars~2.6k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Nexus Mapper

    Haaaiawd/Nexus-skills

    Generate a persistent .nexus-map/ knowledge base that lets any AI session instantly understand a codebase's architecture, systems, dependencies, and change hotspots.

    166 GitHub stars~2.5k tokensUpdated 6 mo ago
    DevelopmentAuto-check: notes
  • Plan Tree

    SeemSeam/claude_codex_bridge

    Maintain a structured planning document tree made of roadmap/status files, implementation status or handoff TODO files, topic notes, decision records, open questions, ideas/inspiration pools, and…

    3.6k GitHub stars~6.3k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Nexus Query

    Haaaiawd/Nexus-skills

    Precise, instant code structure queries for active development — answer 'who depends on this interface before I refactor it', 'how many modules break if I change this', 'what is the real impact…

    166 GitHub stars~1.1k tokensUpdated 6 mo ago
    DevelopmentAuto-check passed
  • Experiment Craft

    EvoScientist/EvoSkills

    A skill your agent uses when the user wants to debug, diagnose, or systematically iterate on an experiment that already exists, or when they need a structured experiment log for tracking runs…

    476 GitHub starsUsed in 3 repos~2k tokens
    DevelopmentAuto-check passed

More from dykyi-roman/awesome-claude-code

All 11 skills in this repo
  • Grasp Knowledge

    dykyi-roman/awesome-claude-code

    GRASP principles knowledge base for PHP 8.4 projects. An agent skill from dykyi-roman/awesome-claude-code.

    103 GitHub stars~1.4k tokensUpdated 1 mo ago
    Auto-check passed
  • Psr Autoloading Knowledge

    dykyi-roman/awesome-claude-code

    PSR-4 autoloading standard knowledge base for PHP 8.4 projects.

    103 GitHub stars~2.1k tokensUpdated 1 mo ago
    Auto-check passed
  • Psr Coding Style Knowledge

    dykyi-roman/awesome-claude-code

    PSR-1 and PSR-12 coding standards knowledge base for PHP 8.4 projects.

    103 GitHub stars~2.3k tokensUpdated 1 mo ago
    Auto-check passed
  • Psr Overview Knowledge

    dykyi-roman/awesome-claude-code

    PHP Standards Recommendations (PSR) overview knowledge base.

    103 GitHub stars~2.7k tokensUpdated 1 mo ago
    Auto-check passed
  • Solid Knowledge

    dykyi-roman/awesome-claude-code

    SOLID principles knowledge base for PHP 8.4 projects. An agent skill from dykyi-roman/awesome-claude-code.

    103 GitHub stars~2.4k tokensUpdated 1 mo ago
    Auto-check passed
  • Claude Code Knowledge

    dykyi-roman/awesome-claude-code

    Comprehensive knowledge base for Claude Code formats, patterns, and configuration.

    103 GitHub stars~4k tokensUpdated 1 mo ago
    Auto-check passed

Works with

Questions about Adr Knowledge

What does Adr Knowledge do?

Action-Domain-Responder pattern knowledge base. An agent skill from dykyi-roman/awesome-claude-code. Adr Knowledge is an agent skill from dykyi-roman/awesome-claude-code. Action-Domain-Responder pattern knowledge base.

When should I use Adr Knowledge?

Adr Knowledge fits situations like: tasks that involve Architecture decision records; tasks that involve Knowledge bases.

How do I install Adr Knowledge in Claude Code?

Run `npx skills add dykyi-roman/awesome-claude-code --skill adr-knowledge -a claude-code`. Or copy the skill folder (skills/adr-knowledge in dykyi-roman/awesome-claude-code) into .claude/skills/adr-knowledge in your project. Claude Code loads it when a task matches its description.

How do I install Adr Knowledge in Codex?

Run `npx skills add dykyi-roman/awesome-claude-code --skill adr-knowledge -a codex`. Or copy the skill folder (skills/adr-knowledge in dykyi-roman/awesome-claude-code) into .agents/skills/adr-knowledge in your project. Codex loads it when a task matches its description.

Can I use Adr Knowledge in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add dykyi-roman/awesome-claude-code --skill adr-knowledge -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/adr-knowledge, .gemini/skills/adr-knowledge, .github/skills/adr-knowledge and .opencode/skills/adr-knowledge in your project.

What does Adr Knowledge need to run?

SKILL.md names no scripts, command-line tools or credentials: Adr Knowledge is instructions for the agent only.

Does Adr Knowledge access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Adr Knowledge safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Adr Knowledge use?

Adr Knowledge is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Adr Knowledge use?

About 2.4k tokens (SKILL.md is roughly 9.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 13k tokens, read only when the agent opens those files.

What are the alternatives to Adr Knowledge?

Skills that share tags, products or a category with Adr Knowledge: Capture Knowledge (adamayoung/TMDb, 178 stars), Obsidian Writer (Atmosphere/atmosphere, 3.8k stars), Nexus Mapper (Haaaiawd/Nexus-skills, 166 stars) and Plan Tree (SeemSeam/claude_codex_bridge, 3.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Adr Knowledge?

dykyi-roman (a GitHub user) maintains it in dykyi-roman/awesome-claude-code, which has 103 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on August 16, 2026.

Source: dykyi-roman/awesome-claude-code on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.