بنقرة واحدة
brief-compliance-check
Use when you need to check a LaTeX submission against a PDF assessment brief.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Use when you need to check a LaTeX submission against a PDF assessment brief.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Use when you need to audit a research project against the init-project-research template.
Use when you need to validate a paper's bibliography — cross-references \cite{} keys against .bib files or embedded \bibitem entries, finds missing/unused/typo'd keys, and checks every key against the Paperpile library via the local resolver. Deep verification mode spawns parallel agents for DOI/metadata validation at scale. Fix mode rekeys drifted keys to canonical and stages missing entries for Paperpile.
Use when you need to bootstrap a full research project with directory scaffold and Overleaf symlink.
Use when you need to create a preprint / working-paper variant of a paper currently in conference or journal format. Forks the existing Overleaf project — adds a `preprint/` subfolder using the user's `your-template` Template, ports the body content from the source paper. The preprint is accessed locally via the existing `paper-{venue}/paper/preprint/` path (subfolder under the conference paper's symlink); no separate `paper-wp/` directory. Trigger on "set up a working paper", "create a preprint", "WP version", "arXiv-ready version", "ready to preprint". Never creates a new top-level Overleaf project — always nests inside the existing one. Never uses the conference's own style (.sty / .cls); always swaps to `your-template`.
Use when you need academic proofreading of a LaTeX paper (11 check categories).
Use when you need to assemble, anonymize, or audit a replication package.
| name | brief-compliance-check |
| description | Use when you need to check a LaTeX submission against a PDF assessment brief. |
| allowed-tools | ["Read","Glob","Bash(python3*)","Bash(ls*)"] |
Given a PDF brief and a LaTeX submission, report exactly what is met, missing, or over-limit. Report-only — never modifies files.
Per rules/review-artefact-routing.md (auto-loads in research projects (path-scoped to paper-*/ and paper/)):
brief-compliance-checkreviews/<paper-slug>/brief-compliance-check/<YYYY-MM-DD-HHMM>.md inside the project, where <paper-slug> is the paper directory name (e.g., paper-jtp, paper-philtech). Path is relative to the research project root, not the Task-Management repo../CRITIC-REPORT.md-style filenames are forbidden — pre-rule layout).{date}-revision.md, {date}-r2.md, {date}-pre-submission.md) — never overwrite.reviews/INDEX.md exists, write a one-line entry under "Latest per source" pointing at the new file. Otherwise /review-recap will rebuild the index next time it runs.[brief.pdf] [submission/] or auto-detect from context| Setting | Default |
|---|---|
| Brief path | Prompt if not found automatically |
| Submission dir | CWD or submission/ subdirectory |
| LaTeX file | main.tex in submission dir |
| Word counting | Strips lstlisting, tikzpicture, tabular/tabularx, LaTeX commands |
Read the full brief PDF. Extract for each task/section:
Present a one-paragraph summary: how many tasks, total marks, submission format.
For any task with a word limit, count words in the corresponding LaTeX section using this script:
import re
with open('main.tex', 'r') as f:
tex = f.read()
# Map section headings to task labels and limits
# (fill from brief before running)
sections = {
'Task X': (r'\section{Heading}', r'\section{Next Heading}', limit),
}
for task, (start, end, limit) in sections.items():
s = tex.find(start)
e = tex.find(end) if end else len(tex)
chunk = tex[s:e]
# Strip non-prose environments
chunk = re.sub(r'\\begin\{lstlisting\}.*?\\end\{lstlisting\}', '', chunk, flags=re.DOTALL)
chunk = re.sub(r'\\begin\{tikzpicture\}.*?\\end\{tikzpicture\}', '', chunk, flags=re.DOTALL)
chunk = re.sub(r'\\begin\{tabular[x]?\}.*?\\end\{tabular[x]?\}', '', chunk, flags=re.DOTALL)
# Strip LaTeX commands but keep their text arguments
chunk = re.sub(r'\\[a-zA-Z]+\*?\{([^}]*)\}', r' \1 ', chunk)
chunk = re.sub(r'\\[a-zA-Z]+\*?', ' ', chunk)
chunk = re.sub(r'[{}\$~^%]', ' ', chunk)
count = len(chunk.split())
status = 'OK' if count <= limit else f'OVER by {count - limit}'
print(f'{task}: ~{count} words (limit {limit}) [{status}]')
Adapt section headings and limits from the brief before running.
For each required non-LaTeX file, verify existence:
ls submission/ # check submitted PDF and LaTeX
ls openapi/ # check YAML specs if required
ls .github/workflows/ # check CI workflow if required
ls services/*/ # check service implementations if required
Report each as ✅ present / ❌ missing.
Produce a compliance table per task. Then summarise overall status.
## Brief Compliance Report — [Module/Assessment Name]
### Overview
[1-para summary: N tasks, N marks, submission format]
### Per-Task Compliance
| Task | Requirement | Status |
|------|-------------|--------|
| A | Architecture diagram | ✅ |
| A | Written explanation ≤600 words | ✅ ~540 words |
| B | Security requirements ≤800 words | ✅ ~416 words |
| C | Five OpenAPI YAML files | ✅ |
| C | Linting output in PDF | ✅ |
| D | Test logs | ✅ |
| D | Written analysis ≤600 words | ❌ ~764 words (OVER by 164) |
| E | GitHub Actions workflow file | ✅ |
| F | Reflection ≤700 words | ✅ ~645 words |
### File Deliverables
| File/Directory | Required | Status |
|----------------|----------|--------|
| main.pdf | Yes | ✅ |
| openapi/*.yaml (5 files) | Yes | ✅ |
| .github/workflows/ci.yml | Yes | ✅ |
| services/*/Dockerfile (5) | Yes | ✅ |
### Summary
- ✅ N requirements met
- ❌ N gaps or violations
- ⚠️ N warnings (approaching limit, optional items)
[Action items for any ❌ or ⚠️]
lstlisting, tikzpicture, or table body content — these are not proseWrite the brief-compliance report to reviews/<paper-slug>/brief-compliance-check/<YYYY-MM-DD-HHMM>.md (where <paper-slug> is extracted from the paper directory, e.g. paper-jtp; create mkdir -p reviews/<paper-slug>/brief-compliance-check/ first). Then append a row to the project's REVIEW-STATE.md:
bash ~/.claude/skills/_shared/review-state-log.sh \
--check brief-compliance-check \
--paper "<paper-{venue} dir>" \
--verdict "<PASS|PARTIAL|FAIL>" \
--score "<met-count>/<total-criteria>" \
--open-issues "<gap-count>/<total-criteria>" \
--report "reviews/<paper-slug>/brief-compliance-check/<YYYY-MM-DD-HHMM>.md" \
--notes "<one-line: e.g. 'over word limit by 250; missing appendix C'>" \
[--trigger "pre-submission-report|review-cluster"]
8/10).Schema: ~/Task-Management/docs/reference/review-state-schema.md.