docstring-enforcer
Use when adding or revising documentation for Python modules/Django code or exported TypeScript/React utilities.
Skill by webstackdev
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/webstackdev-docstring-enforcer
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, frontend, backend
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/docstring-enforcer
What's inside
- Skill name
docstring-enforcer- Description
- Use when adding or revising documentation for Python modules/Django code or exported TypeScript/React utilities. Triggers: docstring, JSDoc, document this file, lib utilities, improve docs, and explain intent.
- License
- AGPL-3.0
- Instructions
- 34 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Docstring Enforcer Skill
Use this skill for meaningful documentation that explains *why* code exists and *how* it handles edge cases.
## Rules
### 🐍 Python (Google Style)
- **Standard:** Use Google-style docstrings and PEP 257.
- **Structure:** Include `Args:`, `Returns:`, and `Raises:` only when they provide value. Do not add empty sections.
- **Django Specifics:** Document the "why" behind complex QuerySets or signal receivers. Trivial dunder methods or obvious model fields can remain undocumented if self-explanatory.
- **Intent:** Favor workflow context over repeating the function name (e.g., "Invalidates the cache after user logout" vs "Does logout stuff").
### ⚛️ TypeScript & Next.js (JSDoc Style)
- **Standard:** Use JSDoc for exported utilities, hooks, and complex components.
- **Frontend `lib/` Policy:** ALL shared utilities in `lib/` must include:
- **@example:** A brief code snippet showing typical usage.
- **Edge Cases:** Describe behavior for `null`, `undefined`, or empty strings in `@param` or `@returns`.
- **Clarity:** Do not just restate TypeScript types. Explain constraints (e.g., "The string must be a valid ISO-8601 date").
## References
- **Gold Standard (Python):** See `core/models.py` and `core/pipeline.py`.
- **Gold Standard (TS/lib):** See `frontend/src/lib/formatters.ts` (if applicable) for example-driven JSDoc.
- **Context:** Check `docs/DEVELOPER_GUIDE.md` to ensure docs align with overall system architecture.
## Workflow
1. Analyze the file to understand its role in the Django/Next.js bridge.
2. If documentation is missing or outdated, rewrite it using the styles above.
3. Ensure that if a Django API field changes, the corresponding Next.js JSDoc for that field is also flagged for an update.From webstackdev/digest-engine, AGPL-3.0.
More from webstackdev/digest-engine
- 0.497score
source-plugin-patterns
webstackdev
Use when adding or changing ingestion plugins, source configuration validation, RSS or Reddit style fetchers, source health checks, or content ingestion…
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
coverage-auditor
webstackdev
Use when adding or updating tests for Django, Ninja API, Taskiq, admin, plugin, or Next.js code, or when closing a coverage gap.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
project-api-patterns
webstackdev
Use when adding or changing project-scoped Ninja routes, request or response schemas, nested routes, or API docs in `projects/ninja_api.py` and related app…
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
bridge-scaffolder
webstackdev
Use when creating or changing a feature that spans both the Django API and the Next.js frontend.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
ai-pipeline-patterns
webstackdev
Use when changing the AI workflow, embeddings, Qdrant integration, newsletter intake, relevance scoring, summarization, classification, Taskiq handoff, or…
SkillCFreshness: C★ 1Claude Code +9 - 0.486score
deduplication
webstackdev
Decide whether two content items should be treated as duplicates.
SkillCFreshness: C★ 1Claude Code +9 - 0.486score
summarization
webstackdev
Write a concise newsletter-ready summary for relevant content.
SkillCFreshness: C★ 1Claude Code +9 - 0.482score
original-content-ideation
webstackdev
Generate grounded original article ideas from project trend gaps.
SkillCFreshness: C★ 1Claude Code +9 - 0.482score
content-classification
webstackdev
Classify newsletter content into one supported editorial content type.
SkillCFreshness: C★ 1Claude Code +9 - 0.482score
entity-extraction
webstackdev
Extract tracked entity mentions and propose new entity candidates.
SkillCFreshness: C★ 1Claude Code +9 - 0.482score
newsletter-composition
webstackdev
Compose editor-ready newsletter drafts from accepted themes, ideas, and recent supporting content.
SkillCFreshness: C★ 1Claude Code +9 - 0.482score
newsletter_extraction
webstackdev
Extract ordered article candidates from a forwarded newsletter email.
SkillCFreshness: C★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Apr 28, 2026 (6 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- AGPL-3.0
- Repository
- github.com/webstackdev/digest-engine
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from webstackdev
- 0.497score
ai-pipeline-patterns
webstackdev
Use when changing the AI workflow, embeddings, Qdrant integration, newsletter intake, relevance scoring, summarization, classification, Taskiq handoff, or…
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
bridge-scaffolder
webstackdev
Use when creating or changing a feature that spans both the Django API and the Next.js frontend.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
coverage-auditor
webstackdev
Use when adding or updating tests for Django, Ninja API, Taskiq, admin, plugin, or Next.js code, or when closing a coverage gap.
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
project-api-patterns
webstackdev
Use when adding or changing project-scoped Ninja routes, request or response schemas, nested routes, or API docs in `projects/ninja_api.py` and related app…
SkillCFreshness: C★ 1Claude Code +9 - 0.497score
source-plugin-patterns
webstackdev
Use when adding or changing ingestion plugins, source configuration validation, RSS or Reddit style fetchers, source health checks, or content ingestion…
SkillCFreshness: C★ 1Claude Code +9 - 0.486score
deduplication
webstackdev
Decide whether two content items should be treated as duplicates.
SkillCFreshness: C★ 1Claude Code +9
Cite this page
docstring-enforcer skill. Agent Mart. https://agentmart.dev/skills/webstackdev-docstring-enforcer (last updated 2026-10-24)