npx claudepluginhub yodem/academic-writer --plugin academic-writerThis skill uses the workspace's default tool permissions.
Quick update to your research field without re-running the full initialization.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Quick update to your research field without re-running the full initialization.
First, check if a profile exists and load it:
if [ -f .academic-helper/profile.md ]; then
CURRENT_FIELD=$(python3 -c "
import re
content = open('.academic-helper/profile.md').read()
m = re.search(r'^fieldOfStudy: (.+)$', content, re.MULTILINE)
print(m.group(1).strip() if m else 'Not set')
")
echo "Current field: $CURRENT_FIELD"
else
echo "No profile found. Run /academic-writer:init first."
exit 1
fi
Ask the researcher:
"What's your new field of study and area of specialization?"
(Current:
$CURRENT_FIELD)
Record their answer.
Update the profile JSON with the new field while keeping all other settings intact:
python3 << 'PYTHON'
import re, json
from datetime import datetime
PROFILE_PATH = '.academic-helper/profile.md'
with open(PROFILE_PATH) as f:
content = f.read()
# Update fieldOfStudy and updatedAt in frontmatter
new_field = 'NEW_FIELD_HERE'
now = datetime.now().isoformat()
# Replace fieldOfStudy in frontmatter
if re.search(r'^fieldOfStudy: .+$', content, re.MULTILINE):
content = re.sub(r'^fieldOfStudy: .+$', f'fieldOfStudy: {new_field}', content, flags=re.MULTILINE)
else:
# Insert after first ---
content = content.replace('---\n', f'---\nfieldOfStudy: {new_field}\n', 1)
if re.search(r'^updatedAt: .+$', content, re.MULTILINE):
content = re.sub(r'^updatedAt: .+$', f'updatedAt: {now}', content, flags=re.MULTILINE)
else:
content = content.replace('---\n', f'---\nupdatedAt: {now}\n', 1)
with open(PROFILE_PATH, 'w') as f:
f.write(content)
print(f"✓ Field updated to: {new_field}")
PYTHON
Show the updated profile:
"Done! Your field is now: [new field]
Your citation style and writing style remain unchanged. Run
/academic-writer:writeanytime to start writing."