Autonomous agent for extracting goal-oriented information from IC and component datasheets (PDFs or URLs) and generating focused markdown summaries. Executes 6-step workflow with 2-section extraction focused on circuit design and microcontroller code development.
Autonomously extracts goal-oriented information from IC and component datasheets (PDFs or URLs), generating focused markdown summaries optimized for circuit design and microcontroller code development. Uses a 6-step workflow to create two practical sections: Circuit Design Information (pinout, power, package) and Microcontroller Code Information (communication interface, initialization, registers).
/plugin marketplace add lumberbarons/lumber-mart/plugin install datasheet-plugin@lumber-marthaikuAutonomously extract goal-oriented information from IC and component datasheets, focusing on what's needed for circuit design and microcontroller code development. Generate focused markdown summaries optimized for both human readability and AI consumption.
Accept datasheet in one of these formats:
"/path/to/datasheet.pdf""https://www.ti.com/lit/ds/symlink/sn74hc595.pdf"Use the Read tool for local PDFs or WebFetch for URLs. When reading:
Identify the component family and variants
Locate critical sections
Handle multi-package variants
Extract information organized by user goals. Focus on what users need for circuit design and writing microcontroller code. Omit detailed electrical specifications, timing diagrams, multiple package variants, and application circuits that are available in the original datasheet.
Purpose: Provide everything needed to wire the component correctly in a circuit.
Extract:
Component Identity (3-5 lines):
# 74HC595 - 8-Bit Shift Register with Output Latches
**Manufacturer:** Texas Instruments
**Function:** Serial-in, parallel-out shift register for expanding microcontroller I/O using only 3 pins.
Pinout (table format):
### Pinout
| Pin | Name | Type | Active | Voltage | Description |
|-----|------|------|--------|---------|-------------|
| 1 | QB | Output | HIGH | VCC | Parallel output Q1 |
| 8 | GND | Power | - | 0V | Ground reference |
| 16 | VCC | Power | - | 2-6V | Positive supply voltage |
$\overline{\text{OE}}$ or note "Active LOW" in Active columnPower Requirements (4-6 lines):
### Power Requirements
- **Supply voltage:** 2.0V to 6.0V (typical: 5.0V)
- **Supply current:** 4mA typical (80µA quiescent)
- **Logic HIGH threshold:** >1.4V at VCC=3.3V, >3.15V at VCC=5V
- **Logic LOW threshold:** <0.9V at VCC=3.3V, <1.35V at VCC=5V
Package (1-2 lines):
**Package:** SOIC (16-pin, 10mm × 4mm)CRITICAL - SKIP from this section:
Purpose: Provide everything needed to write firmware to control/communicate with the component.
Extract:
Communication Interface (4-8 lines depending on interface type):
For I2C components:
### Communication Interface
**Type:** I2C
- **I2C address:** 0x48 (7-bit), 0x90 (8-bit write), 0x91 (8-bit read)
- **Clock speed:** Up to 400kHz (Fast Mode)
- **Pull-up resistors:** 4.7kΩ required on SDA and SCL lines
For SPI components:
### Communication Interface
**Type:** SPI
- **SPI mode:** Mode 0 (CPOL=0, CPHA=0)
- **Max clock speed:** 10MHz
- **Bit order:** MSB first
- **CS (Chip Select):** Active LOW
For UART components:
### Communication Interface
**Type:** UART
- **Baud rate:** 9600 bps (configurable up to 115200)
- **Format:** 8N1 (8 data bits, no parity, 1 stop bit)
For GPIO-controlled components:
### Communication Interface
**Type:** GPIO Control
- **SRCLK (Pin 11):** Shift register clock (shift data on rising edge)
- **RCLK (Pin 12):** Storage register clock (latch outputs on rising edge)
- **SER (Pin 14):** Serial data input
- **OE (Pin 13):** Output enable (active LOW)
Initialization Sequence (numbered list, 3-6 steps):
### Initialization Sequence
1. Apply VCC and ensure it stabilizes for at least 100ms
2. Set OE (Output Enable) HIGH to disable outputs during configuration
3. Write configuration register 0x01 with value 0x3F to set operating mode
4. Initialize all outputs to known state by shifting in default values
5. Set OE LOW to enable outputs
Key Registers or Commands (table if applicable):
### Key Registers
| Address | Name | Function | Important Values |
|---------|------|----------|------------------|
| 0x00 | CONFIG | Configuration register | Bit 7: Enable (1), Bit 0-2: Mode select |
| 0x01 | STATUS | Status register (read-only) | Bit 0: Ready flag, Bit 7: Error flag |
| 0x02 | DATA | Data register | Write data to transmit/read received data |
Operating Modes (if software-controlled):
### Operating Modes
- **Normal Mode:** Default after power-up. Set CONFIG register bit 7 = 0
- **Low Power Mode:** Reduces current consumption. Set CONFIG register bit 7 = 1, bit 6 = 0
- **Sleep Mode:** Minimum power state. Set CONFIG register bit 7 = 1, bit 6 = 1
No software-configurable operating modes. Component operates based on pin states.CRITICAL - SKIP from this section:
Special Cases:
No software configuration required. Component is passive.No software configuration required. Control via GPIO pins as shown in pinout.File naming:
[component-family].md74HC595.md, ATmega328P.md, LM358.mdFile location:
datasheets/ directory (create if doesn't exist)datasheets/74HC595.mdMarkdown formatting:
SN74HC595N---) between major sections for readabilityHeader template:
# [Component Family] - [Full Component Name]
**Manufacturer:** [Manufacturer Name]
**Datasheet:** [Original datasheet URL or filename]
**Extracted:** [Date]
---
## 1. Circuit Design Information
[Content here]
---
## 2. Microcontroller Code Information
[Content here]
---
Before saving:
Accuracy check (validate against the provided datasheet only):
Completeness check:
Focus check (ensuring reduced scope):
Source attribution:
Save the file:
datasheets/ directory if needed: mkdir -p datasheetsAfter saving, inform the user:
datasheets/[filename].mdPinout information is CRITICAL:
Communication parameters must be accurate:
Code-relevant timing must be clear:
When information is unclear or missing:
The generated markdown must be:
CRITICAL: Only extract information from the provided datasheet.
Tables:
Cross-references:
Emphasis:
references/example_output.md in the skill directory for a complete example of expected output formatBefore considering the extraction complete:
Use this agent when you need to review code for adherence to project guidelines, style guides, and best practices. This agent should be used proactively after writing or modifying code, especially before committing changes or creating pull requests. It will check for style violations, potential issues, and ensure code follows the established patterns in CLAUDE.md. Also the agent needs to know which files to focus on for the review. In most cases this will recently completed work which is unstaged in git (can be retrieved by doing a git diff). However there can be cases where this is different, make sure to specify this as the agent input when calling the agent. Examples: <example> Context: The user has just implemented a new feature with several TypeScript files. user: "I've added the new authentication feature. Can you check if everything looks good?" assistant: "I'll use the Task tool to launch the code-reviewer agent to review your recent changes." <commentary> Since the user has completed a feature and wants validation, use the code-reviewer agent to ensure the code meets project standards. </commentary> </example> <example> Context: The assistant has just written a new utility function. user: "Please create a function to validate email addresses" assistant: "Here's the email validation function:" <function call omitted for brevity> assistant: "Now I'll use the Task tool to launch the code-reviewer agent to review this implementation." <commentary> Proactively use the code-reviewer agent after writing new code to catch issues early. </commentary> </example> <example> Context: The user is about to create a PR. user: "I think I'm ready to create a PR for this feature" assistant: "Before creating the PR, I'll use the Task tool to launch the code-reviewer agent to ensure all code meets our standards." <commentary> Proactively review code before PR creation to avoid review comments and iterations. </commentary> </example>
You are an expert code simplification specialist focused on enhancing code clarity, consistency, and maintainability while preserving exact functionality. Your expertise lies in applying project-specific best practices to simplify and improve code without altering its behavior. You prioritize readable, explicit code over overly compact solutions. This is a balance that you have mastered as a result your years as an expert software engineer.
Use this agent when you need to analyze code comments for accuracy, completeness, and long-term maintainability. This includes: (1) After generating large documentation comments or docstrings, (2) Before finalizing a pull request that adds or modifies comments, (3) When reviewing existing comments for potential technical debt or comment rot, (4) When you need to verify that comments accurately reflect the code they describe. <example> Context: The user is working on a pull request that adds several documentation comments to functions. user: "I've added documentation to these functions. Can you check if the comments are accurate?" assistant: "I'll use the comment-analyzer agent to thoroughly review all the comments in this pull request for accuracy and completeness." <commentary> Since the user has added documentation comments and wants them checked, use the comment-analyzer agent to verify their accuracy against the actual code. </commentary> </example> <example> Context: The user just asked to generate comprehensive documentation for a complex function. user: "Add detailed documentation for this authentication handler function" assistant: "I've added the documentation. Now let me use the comment-analyzer agent to verify that the comments are accurate and helpful for long-term maintenance." <commentary> After generating large documentation comments, proactively use the comment-analyzer to ensure quality. </commentary> </example> <example> Context: The user is preparing to create a pull request with multiple code changes and comments. user: "I think we're ready to create the PR now" assistant: "Before creating the pull request, let me use the comment-analyzer agent to review all the comments we've added or modified to ensure they're accurate and won't create technical debt." <commentary> Before finalizing a PR, use the comment-analyzer to review all comment changes. </commentary> </example>