ADR Writer: Architecture Decision Records

    2

    Turns a decision your team already made into a complete ADR: context, options, rationale, consequences, follow-ups.

    Free

    2 usesSecurity scanned

    Works with the AI Agents you already use

    Claude CodeClaude CodeCursorCursorCodex CLICodex CLIDeepSeekDeepSeekMuseMuse+22 more

    ADR Writer: Architecture Decision Records

    Example session with this skill installed

    Write the ADR for a decision we already made.

    • Decision: tenant file uploads go direct to S3 with presigned URLs instead of through our API servers.
    • Decided by the architecture guild on 2026-09-10 (minutes ARCH-GUILD-2026-37). Status: accepted.
    • Why: uploads up to 2 GB hold an API worker for the whole transfer. In incident INC-2291 (2026-08-21), 40 concurrent uploads exhausted the 64-worker pool and p99 API latency went from 180 ms to 9.4 s.
    • Options considered: (1) direct-to-S3 presigned PUT and multipart upload — chosen; (2) a dedicated upload service behind the gateway — rejected, one more service to run and it still proxies the bytes; (3) raise the worker pool to 256 — rejected, memory cost and the coupling stays.
    • Constraints: files must pass malware scanning before any tenant can download them; presigned URLs expire after 15 minutes.
    • Our ADRs live in docs/adr/ in MADR format; the next number is 0042. Write it there.
    • Read your context and instructions
    • Compiled the adr writer

    Wrote docs/adr/0042-direct-to-s3-uploads.md in MADR format. The decision, status, date and options come from your request. Four items you did not supply are recorded as open follow-ups, not filled in. The file-name slug is assumed from the title; rename it if your repository uses another pattern.

    ---
    status: accepted
    date: 2026-09-10
    deciders: Architecture guild (minutes ARCH-GUILD-2026-37)
    ---
    
    # 0042. Direct-to-S3 uploads with presigned URLs for tenant files
    
    ## Context and Problem Statement
    
    Tenant file uploads of up to 2 GB are streamed through the API servers, so each upload holds an
    API worker for the full transfer. In incident INC-2291 (2026-08-21), 40 concurrent uploads
    exhausted the 64-worker pool and p99 API latency rose from 180 ms to 9.4 s. Upload traffic can
    therefore take down unrelated API traffic.
    
    How should tenant files reach storage without consuming API worker capacity?
    
    ## Decision Drivers
    
    * API latency must not depend on the number or size of concurrent uploads (INC-2291).
    * Files must pass malware scanning before any tenant can download them.
    * Presigned URLs expire after 15 minutes.
    
    ## Considered Options
    
    1. Direct-to-S3 presigned PUT and multipart upload
    2. Dedicated upload service behind the gateway
    3. Raise the API worker pool from 64 to 256
    
    ## Decision Outcome
    
    Chosen option: **1. Direct-to-S3 presigned PUT and multipart upload**, because it is the only
    option that removes upload bytes from the API path. The API issues a short-lived presigned URL;
    the client sends the file straight to S3.
    
    ### Consequences
    
    * Good: upload volume no longer consumes API workers, removing the failure mode of INC-2291.
    * Good: no new long-running service to operate.
    * Bad: the API no longer sees file bytes, so malware scanning must run after the object lands
      in S3 and before it becomes downloadable.
    * Bad: clients must handle URL expiry after 15 minutes and resume or restart large multipart
      uploads.
    * Neutral: upload authorization moves from request handling to URL issuance, which becomes the
      control point for who may upload what.
    
    ### Confirmation
    
    This decision is implemented when an upload in progress does not occupy an API worker and a
    newly uploaded object cannot be downloaded before its malware scan passes. The test that proves
    both is a follow-up (F-1, F-2).
    
    ## Pros and Cons of the Options
    
    ### 1. Direct-to-S3 presigned PUT and multipart upload
    
    * Good: bytes bypass the API servers entirely.
    * Good: uses a managed storage service; no extra runtime.
    * Bad: scanning and download gating must be built around S3 events.
    
    ### 2. Dedicated upload service behind the gateway
    
    * Good: isolates uploads from the main API workers.
    * Bad: one more service to build and run.
    * Bad: still proxies every byte, so the capacity problem moves instead of disappearing.
    
    ### 3. Raise the API worker pool to 256
    
    * Good: smallest code change.
    * Bad: higher memory cost.
    * Bad: the coupling between uploads and API latency remains; a larger burst repeats INC-2291.
    
    ## More Information
    
    * Incident: INC-2291 (2026-08-21).
    * Decision minutes: ARCH-GUILD-2026-37 (2026-09-10).
    * Follow-ups, owners not yet assigned:
      * F-1 Download gating: objects stay non-downloadable until the malware scan passes.
      * F-2 Load test proving uploads do not occupy API workers.
      * F-3 Multipart threshold and client resume behaviour after URL expiry.
      * F-4 Cost impact of S3 requests and storage versus the current path.
    

    Record check

    CheckResult
    Decision authority and date presentyes, from ARCH-GUILD-2026-37
    Every considered option has a stated reasonyes, 3 of 3
    Negative consequences recordedyes, 2
    Constraints traced to driversmalware scanning and 15-minute expiry, both in Drivers and Consequences
    Nothing added beyond the requestfollow-ups F-1 to F-4 are open questions, not decisions

    No validator was supplied, so no command was run.

    Not supplied, so not decided

    • Who owns the malware scanning pipeline (F-1).
    • The multipart size threshold (F-3).
    • Whether existing uploads in flight need a migration path.
    • Cost figures (F-4).

    Next steps

    1. Assign owners for F-1 to F-4 in your tracker and link them from the ADR.
    2. Rename the file if your slug convention differs from 0042-direct-to-s3-uploads.md.
    3. Commit the ADR before the code review, as planned.

    Connects securely to your tools. The creator never sees your data.

    About this skill

    ADR Writer: Architecture Decision Records: Full Description

    What it does

    This skill renders one already-framed, authority-backed architectural decision into a durable record whose then-current context, options, rationale, consequences and lifecycle can be reconstructed. It does not make or approve the decision.

    Use it when

    Use when one consequential architectural decision is ready to be recorded under accepted repository and lifecycle conventions.

    For example: “We decided to replace our IPC message bus with lock-free shared memory ring buffers for the LMAX order book distribution, but we need an ADR committed before code review.”

    What you get

    • ADR Markdown Document

    Written as Markdown to <your output folder>/architecture/tasks/<run-id>/adr-authoring/.

    What it will not do

    Do not use for portfolio-level decision governance, choosing technology, drafting an RFC/proposal/design specification, recording meeting notes/changelogs/runbooks, or documenting an unapproved recommendation.

    How it works

    1. Check an authorized decision already exists.
    2. Bound the record identity and repository scope.
    3. Freeze the decision context and drivers.
    4. Capture screened options and explicit non-selections.
    5. Record decision outcome and authority evidence.
    6. Detail consequences and follow-up obligations.
    7. Write the deliverable, classify every claim by its evidence, and check it before calling the work done.

    What's in the package

    Instruction-only: no scripts, no network calls, no environment variables.

    • LICENSE.txt
    • SKILL.md
    • agents/openai.yaml
    • assets/output-template-task.md
    • references/domain-rules.md
    • references/operating-rules.md
    • references/output-contract.md

    Find more skills like this on the Claude Skills Marketplace, the Codex Skills Marketplace and the Gemini Skills Marketplace, or browse Claude Skills for Technical Documentation.

    • Version: 1.0
    • License: proprietary, LICENSE.txt in the zip
    • Also sold in: Architecture Documentation and Modeling Pack, Architect Complete Suite

    How to use

    1. 1

      Connect your agent to the Agensi MCP

      Copy the prompt and paste it into Claude, ChatGPT, Cursor or any agent that supports MCP. It sets up the connection for you. Manual setup

    2. 2

      Sign in to Agensi

      Your agent shows a sign-in link. Sign in and click Allow.

    3. 3

      Ask for what you need

      Your agent loads this skill and uses it on your task. It always asks before buying a skill.

    Reviews

    No reviews yet

    Be one of the first to try it. Every listed skill goes through the trust checks below.

    Security scanned

    Checked by our 8-point scan before listing

    2 uses

    Times used to date

    Free to use

    No account required to browse

    Trust & safety

    Security scan

    Security scan passed 1 month ago

    • Free with an Agensi account

    Permissions

    Write Files
    Read Files
    Listed1 month ago

    What's inside

    Frequently Asked Questions

    No. It classifies every claim as provided, observed, derived, decided, assumed or unknown, and stops with a list of the missing evidence and who owns it instead of guessing.

    No. It reads what you give it and writes Markdown documents under the output folder you name.

    Any agent that supports SKILL.md skills, including Claude Code, Codex CLI, Cursor and Gemini CLI. It has no scripts and makes no network calls.

    New in Technical Documentation

    Free