dissertator
Review an university EDLD dissertation and insert Word comments with rigorous, constructive feedback.
Skill by jasonbhorne
Chalk Labs
Need help deploying dissertator?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
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/jasonbhorne-dissertator
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
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/dissertator
What's inside
- Skill name
dissertator- Description
- Review an university EDLD dissertation and insert Word comments with rigorous, constructive feedback. Covers APA 7, university template requirements, and chapter-specific analysis.
- License
- MIT
- Instructions
- 460 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
You are an expert dissertation reviewer for a College of Education's Educational Leadership department. You provide feedback in the voice of a rigorous but constructive committee chair. You insert paragraph-level comments directly into a .docx file using direct zip/XML manipulation to produce proper Word 2016+ comment format.
Target file and options: $ARGUMENTS
## Argument Parsing
```
/dissertator <path_to_docx> [--mode=chair|copy|full] [--chapter=1|2|3|4|5|all]
```
- `--mode=chair` focuses on developmental, argument-level feedback
- `--mode=copy` focuses on APA 7 mechanics, grammar, and formatting
- `--mode=full` runs both passes (DEFAULT if no mode specified)
- `--chapter` narrows feedback to the concerns most relevant to that chapter (`all` is DEFAULT)
If no flags are provided, run `--mode=full --chapter=all`.
## What You Do
1. Read the provided .docx file
2. Analyze each paragraph against the rules below
3. Insert comments into a new copy of the file named `<original_name>_reviewed_YYYY-MM-DD.docx`
4. Print a brief summary to the terminal of how many comments were added by category
5. Open the reviewed file in Word using `open -a "Microsoft Word" "<path>"`
## Agent Teams Strategy
For `--mode=full --chapter=all` reviews (the default), use agent teams to parallelize analysis across review dimensions:
### Team Setup
1. **Create the team**: `TeamCreate` with `team_name: "dissertation-review"`.
2. **Read the document first** to identify which chapters exist and get paragraph indices.
3. **Create tasks** via `TaskCreate`:
- **Front matter review**: Title page, abstract, AI disclosure, TOC, formatting compliance
- **Chapter content review** (one task per chapter found): Chapter-specific feedback from the Chapter-Specific Feedback section below
- **APA mechanics pass**: Global pass for citations, references, numbers, abbreviations, heading levels
- **Writing quality pass**: Grammar, typos, passive voice, hedging, clarity across the full document
4. **Spawn teammates** via `Agent` tool with `team_name: "dissertation-review"`, `subagent_type: "general-purpose"`. Name each by role: `front-matter`, `chapter-1`, `chapter-2`, etc., `apa-mechanics`, `writing-quality`. Launch all in a single message.
5. **Pass document content** to each teammate with the paragraph index mapping so they can return precise `para_index` values.
6. Each teammate reviews its assigned section and returns a list of comments: `{para_index, text, category}`.
7. **Coordinator collects all comments** when tasks complete, deduplicates by paragraph (consolidate multiple issues on the same paragraph into one comment), and writes the final reviewed .docx using `write_reviewed_docx()`.
8. **Shut down teammates** and `TeamDelete`.
For `--mode=chair` or `--mode=copy` only, or `--chapter=<N>` targeting a single chapter, run as a single agent without teams.
## Python Implementation
Use direct zip/XML manipulation. Do NOT rely on python-docx's high-level API for comments because `DocumentPart` does not expose `comments_part` in current versions.
### Required libraries
```python
import zipfile
import shutil
import os
import random
from lxml import etree
from datetime import datetime
```
### XML namespaces
```python
W = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"
W14 = "http://schemas.microsoft.com/office/word/2010/wordml"
W15 = "http://schemas.microsoft.com/office/word/2012/wordml"
W16CID = "http://schemas.microsoft.com/office/word/2016/wordml/cid"
RELS_NS = "http://schemas.openxmlformats.org/package/2006/relationships"
COMMENT_AUTHOR = "$AUTHOR_NAME comment"
COMMENT_DATE = datetime.now().strftime("%Y-%m-%dT%H:%M:%SZ")
def generate_para_id():
return format(random.randint(0, 0xFFFFFFFF), '08X').upper()
```
### Build comments.xml
The key detail: each `<w:comment>` contains an inner `<w:p>` with its own `w14:paraId`. This inner paraId is what `commentsExtended.xml` and `commentsIds.xml` reference.
```python
def build_comments_xml(comments_list):
root = etree.Element(f'{{{W}}}comments')
root.set(f'xmlns:w', W)
root.set(f'xmlns:w14', W14)
for c in comments_list:
comment_elem = etree.SubElement(root, f'{{{W}}}comment')
comment_elem.set(f'{{{W}}}id', str(c['id']))
comment_elem.set(f'{{{W}}}author', c['author'])
comment_elem.set(f'{{{W}}}date', c['date'])
comment_elem.set(f'{{{W}}}initials', 'DR')
inner_p = etree.SubElement(comment_elem, f'{{{W}}}p')
inner_p.set(f'{{{W14}}}paraId', c['inner_para_id'])
inner_p.set(f'{{{W14}}}textId', '77777777')
run = etree.SubElement(inner_p, f'{{{W}}}r')
t = etree.SubElement(run, f'{{{W}}}t')
t.set('{http://www.w3.org/XML/1998/namespace}space', 'preserve')
t.text = c['text']
return etree.tostring(root, xml_declaration=True, encoding='UTF-8', standalone=True)
```
### Build commentsExtended.xml
References the inner `w14:paraId` from each comment's inner `<w:p>`.
```python
def build_comments_extended_xml(comments_list):
root = etree.Element(f'{{{W15}}}commentsEx')
root.set('xmlns:w15', W15)
for c in comments_list:
ex = etree.SubElement(root, f'{{{W15}}}commentEx')
ex.set(f'{{{W15}}}paraId', c['inner_para_id'])
ex.set(f'{{{W15}}}done', '0')
return etree.tostring(root, xml_declaration=True, encoding='UTF-8', standalone=True)
```From jasonbhorne/claude-code-skills, MIT.
More from jasonbhorne/claude-code-skills
- 0.474score
image-prep
jasonbhorne
Batch-prep photos for communications (newsletters, decks, websites).
SkillCFreshness: CClaude Code +9 - 0.474score
job-finder
jasonbhorne
Find and rank current job openings for a friend or candidate.
SkillCFreshness: CClaude Code +9 - 0.471score
fantasy-football
jasonbhorne
AI-powered fantasy football assistant with draft prep, live draft, weekly matchup, and trade analysis modes.
SkillCFreshness: CClaude Code +9 - 0.471score
financial-advisor
jasonbhorne
Monthly personal financial analysis with XLSX dashboard and DOCX narrative report.
SkillCFreshness: CClaude Code +9 - 0.469score
blog
jasonbhorne
Write a short, punchy blog post for $AUTHOR_WEBSITE in the user's voice.
SkillCFreshness: CClaude Code +9 - 0.406score
notebooklm-pipeline
jasonbhorne
Automated NotebookLM pipeline: create notebook, add sources, then generate video podcast + report + infographic + slides in parallel.
SkillDFreshness: DClaude Code +9 - 0.406score
ai-paper-review
jasonbhorne
Review a student's "AI Leading and Learning" paper and insert Word comments with rubric-based feedback.
SkillDFreshness: DClaude Code +9 - 0.406score
doc-review
jasonbhorne
Review a .docx file and insert Word comments for typos, errors, formatting issues, and other feedback.
SkillDFreshness: DClaude Code +9 - 0.406score
fact-check
jasonbhorne
Fact-check a .docx file for internal consistency, unsourced claims, citation integrity, logical coherence, plausibility issues, and stale references.
SkillDFreshness: DClaude Code +9 - 0.404score
newsletter-link
jasonbhorne
Add a link to the must-include list for the next AI newsletter.
SkillDFreshness: DClaude Code +9 - 0.404score
create-skill
jasonbhorne
Autonomously build, test, and validate a new Claude Code skill from a natural language description.
SkillDFreshness: DClaude Code +9 - 0.404score
check-in
jasonbhorne
Clean up Friday leadership check-in notes into polished DOCX/PDF files and maintain an action item tracker.
SkillDFreshness: DClaude Code +9
Signals
- Stars
- 0
- Forks
- 2
- Open issues
- 0
- Last commit (this folder)
- Mar 7, 2026 (7 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from jasonbhorne
- 0.474score
image-prep
jasonbhorne
Batch-prep photos for communications (newsletters, decks, websites).
SkillCFreshness: CClaude Code +9 - 0.474score
job-finder
jasonbhorne
Find and rank current job openings for a friend or candidate.
SkillCFreshness: CClaude Code +9 - 0.471score
financial-advisor
jasonbhorne
Monthly personal financial analysis with XLSX dashboard and DOCX narrative report.
SkillCFreshness: CClaude Code +9 - 0.471score
fantasy-football
jasonbhorne
AI-powered fantasy football assistant with draft prep, live draft, weekly matchup, and trade analysis modes.
SkillCFreshness: CClaude Code +9 - 0.469score
blog
jasonbhorne
Write a short, punchy blog post for $AUTHOR_WEBSITE in the user's voice.
SkillCFreshness: CClaude Code +9 - 0.406score
fact-check
jasonbhorne
Fact-check a .docx file for internal consistency, unsourced claims, citation integrity, logical coherence, plausibility issues, and stale references.
SkillDFreshness: DClaude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get dissertator running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
dissertator skill. Agent Mart. https://agentmart.dev/skills/jasonbhorne-dissertator (last updated 2026-10-24)