From 28e04853f12c19e5dadf86c7f7e242866c392da5 Mon Sep 17 00:00:00 2001 From: qyh15 Date: Wed, 27 May 2026 21:14:31 +0800 Subject: [PATCH] Initial QQwrite skill --- SKILL.md | 75 ++++++++++++ agents/openai.yaml | 4 + assets/templates/afm/article-template.docx | Bin 0 -> 73979 bytes references/template-adjustment.md | 62 ++++++++++ scripts/docx_template_audit.py | 127 +++++++++++++++++++++ 5 files changed, 268 insertions(+) create mode 100644 SKILL.md create mode 100644 agents/openai.yaml create mode 100644 assets/templates/afm/article-template.docx create mode 100644 references/template-adjustment.md create mode 100644 scripts/docx_template_audit.py diff --git a/SKILL.md b/SKILL.md new file mode 100644 index 0000000..421b7f6 --- /dev/null +++ b/SKILL.md @@ -0,0 +1,75 @@ +--- +name: qqwrite +description: Adjust manuscript Word documents to match journal or group writing templates. Use when the user asks QQwrite to format, restructure, clean, or align a .docx manuscript according to a Word template from the local template library, especially for scientific manuscripts, AFM-style templates, section order, title page metadata, abstract/keywords placement, headings, captions, references, SI pointers, and submission-ready Word formatting. +--- + +# QQwrite + +QQwrite is the Word-template execution skill for manuscript writing workflows. Its current scope is intentionally narrow: use a template from the local template library to adjust a user's manuscript Word file while preserving scientific meaning. + +## Core Rule + +Do not overwrite the source manuscript. Always create a revised copy and a short Markdown report. + +Default outputs: + +- `*_qqwrite_adjusted.docx` +- `*_qqwrite_report.md` + +## Template Library + +Use bundled templates first: + +- `assets/templates/afm/article-template.docx` for Advanced Functional Materials-style manuscript formatting. + +If the user provides another template path, use the user-provided template instead. + +For template handling details, read `references/template-adjustment.md`. + +## Workflow + +1. Identify inputs: + - source manuscript `.docx` + - template `.docx` + - target journal or template name if provided + - output directory + +2. Preflight both documents: + - inspect section order and heading hierarchy + - compare title page fields, abstract, keywords, main text, methods, references, captions, acknowledgements, and supporting information pointers + - inspect paragraph styles, table count, figure-caption patterns, references section, and obvious empty or duplicated sections + - run `scripts/docx_template_audit.py` when a quick structural report is useful + +3. Adjust only formatting and template structure unless the user explicitly asks for rewriting: + - move or relabel sections to match the template + - normalize heading levels + - normalize title, author, affiliation, abstract, keywords, captions, references, and acknowledgements placement + - preserve scientific claims, numbers, units, equations, citations, and figure/table labels + - flag unclear template conflicts in the report instead of guessing silently + +4. Produce the revised Word file: + - copy the original manuscript first + - apply template-compatible styles and section order + - keep original content recoverable + - avoid converting citations to plain text unless unavoidable and reported + +5. Produce the report: + - list template used + - list changed sections and formatting changes + - list unresolved issues requiring author decision + - list any content that appears missing relative to the template + +## Boundaries + +- QQwrite does not decide manuscript novelty, literature strength, or reviewer risk. Route those tasks to QQsci. +- QQwrite does not generate Zotero/DeepSeek literature notes. Route those tasks to QQnote. +- QQwrite may lightly fix obvious Word-format inconsistencies, but substantial scientific rewriting belongs in QQsci or a future writing module expansion. +- For citation suggestions inside Word, follow QQsci's DOI-only comment convention if the task explicitly involves citation comments. + +## Current Capability + +Only one capability is active now: + +`template-adjust-docx`: adjust a manuscript `.docx` according to a `.docx` template from the local library. + +Future capabilities can be added later, but keep this skill focused on Word-template execution. diff --git a/agents/openai.yaml b/agents/openai.yaml new file mode 100644 index 0000000..037eeba --- /dev/null +++ b/agents/openai.yaml @@ -0,0 +1,4 @@ +interface: + display_name: "QQwrite" + short_description: "Adjust manuscript Word documents to match writing templates." + default_prompt: "Help me adjust this manuscript Word document using a template from the template library. Preserve scientific meaning, compare structure and formatting with the template, and produce a revised .docx plus a short Markdown report." diff --git a/assets/templates/afm/article-template.docx b/assets/templates/afm/article-template.docx new file mode 100644 index 0000000000000000000000000000000000000000..50ae265cae3a56f92af4c65e5fc90d29211d15d1 GIT binary patch literal 73979 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�junaD`LYMZ|9 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

c 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%0AB6D}P(5HC`u=NJ85x@C(VJQ6 znHVwBncEtf{92V?&kp|^Mz{4Zj9*U@{}tlblUM(SFzWdW;>UAXe`WtUYxr+wAfUZf zpx@;X{|fMPcI}S6zKii&l%HeLe?%cT{T1c=l=Z6^KgW9i2mp2V zE5LU#ev9&Jfb-utYUlq_t^X75{HqAR?o|EFJPZo_XZQGJ-|AO{Uw1G5MtA_EbARt( zKka4w%Kx(m_-}3?pc^P)pnv#-e`WvKGxsBV2J8>)fBETt<^I`^@gsK`z`gNz;op<= ze>d3wyn_7^;2RR~4;}M&>)Bt0`FS1mBh~}T@3H<~75$3!vo-xA7BKqnvHrHLf5rOQ kB>NEy3iJ0^e;a7;q`(0y|36mu_&_s&*%J{PFrWkde<=&rK>z>% literal 0 HcmV?d00001 diff --git a/references/template-adjustment.md b/references/template-adjustment.md new file mode 100644 index 0000000..3ca4626 --- /dev/null +++ b/references/template-adjustment.md @@ -0,0 +1,62 @@ +# Word Template Adjustment + +## Goal + +Make the user's manuscript follow the selected Word template without changing the scientific meaning. + +## What To Compare + +Compare these elements before editing: + +- title page fields: title, authors, affiliations, corresponding author, abstract, keywords +- section order: introduction, results/discussion, conclusion, experimental/methods, acknowledgements, conflict of interest, data availability, references +- heading hierarchy and visible heading text +- figure and table caption style and numbering +- references section placement and numbering style +- SI references, graphical abstract/TOC notes, highlights, and cover letter cross-references when present +- page setup, margins, columns, headers/footers, and line spacing when detectable + +## Editing Rules + +- Work on a copied `.docx`; never overwrite the source. +- Prefer Word-native styles when available. +- Preserve all numbers, units, chemical formulas, gene/protein names, sample names, equations, citation markers, figure labels, and table labels. +- Do not silently delete content that has no obvious template location. Move it to the closest suitable section or flag it in the report. +- If the template contains placeholder text, replace only with matching manuscript content; remove unused placeholders in the revised copy. +- Keep references and citations intact. If field codes are lost by tooling, report that explicitly. + +## Report Format + +Use this Markdown shape: + +```markdown +# QQwrite Template Adjustment Report + +## Inputs +- Manuscript: +- Template: +- Output: + +## Changes Made +- ... + +## Missing Or Unclear Items +- ... + +## Checks +- Section order: +- Heading hierarchy: +- Captions: +- References: +- Citation fields: +``` + +## When To Stop And Ask + +Ask the user before continuing if: + +- the manuscript and template are for clearly different article types +- the manuscript has no recognizable title/abstract/main sections +- a template-required section is missing and cannot be inferred +- editing would require scientific rewriting rather than formatting/structure adjustment +- citation fields, equations, or embedded objects are at risk of being flattened diff --git a/scripts/docx_template_audit.py b/scripts/docx_template_audit.py new file mode 100644 index 0000000..e15c6f9 --- /dev/null +++ b/scripts/docx_template_audit.py @@ -0,0 +1,127 @@ +#!/usr/bin/env python3 +"""Create a lightweight structural audit for a manuscript/template DOCX pair. + +This script intentionally uses only the Python standard library. It inspects the +OOXML package directly and reports headings, paragraph-style usage, section-like +paragraphs, table count, and image count. It does not modify documents. +""" + +from __future__ import annotations + +import argparse +import collections +import json +import re +import sys +import zipfile +from pathlib import Path +from xml.etree import ElementTree as ET + + +NS = { + "w": "http://schemas.openxmlformats.org/wordprocessingml/2006/main", + "a": "http://schemas.openxmlformats.org/drawingml/2006/main", +} + + +SECTION_PATTERNS = [ + "abstract", + "keywords", + "introduction", + "results", + "discussion", + "conclusion", + "experimental", + "methods", + "acknowledgements", + "acknowledgments", + "conflict of interest", + "data availability", + "references", +] + + +def read_xml(zf: zipfile.ZipFile, name: str) -> ET.Element | None: + try: + return ET.fromstring(zf.read(name)) + except KeyError: + return None + + +def text_from_paragraph(p: ET.Element) -> str: + parts = [] + for t in p.findall(".//w:t", NS): + if t.text: + parts.append(t.text) + return "".join(parts).strip() + + +def style_from_paragraph(p: ET.Element) -> str: + style = p.find("./w:pPr/w:pStyle", NS) + if style is None: + return "(none)" + return style.attrib.get(f"{{{NS['w']}}}val", "(unknown)") + + +def inspect_docx(path: Path) -> dict: + with zipfile.ZipFile(path) as zf: + document = read_xml(zf, "word/document.xml") + if document is None: + raise ValueError(f"{path} does not contain word/document.xml") + + paragraphs = document.findall(".//w:p", NS) + tables = document.findall(".//w:tbl", NS) + drawings = document.findall(".//w:drawing", NS) + + style_counts: collections.Counter[str] = collections.Counter() + headings = [] + section_hits = [] + nonempty_count = 0 + + for index, p in enumerate(paragraphs, start=1): + text = text_from_paragraph(p) + style = style_from_paragraph(p) + style_counts[style] += 1 + if not text: + continue + nonempty_count += 1 + normalized = re.sub(r"\s+", " ", text).strip().lower() + if style.lower().startswith("heading") or style.lower().startswith("title"): + headings.append({"index": index, "style": style, "text": text[:160]}) + if any(pattern == normalized or normalized.startswith(pattern + ":") for pattern in SECTION_PATTERNS): + section_hits.append({"index": index, "style": style, "text": text[:160]}) + + return { + "path": str(path), + "paragraphs": len(paragraphs), + "nonempty_paragraphs": nonempty_count, + "tables": len(tables), + "drawings": len(drawings), + "top_styles": style_counts.most_common(20), + "headings": headings[:80], + "section_hits": section_hits[:80], + } + + +def main() -> int: + parser = argparse.ArgumentParser(description="Audit a manuscript DOCX against a template DOCX.") + parser.add_argument("--manuscript", required=True, type=Path) + parser.add_argument("--template", required=True, type=Path) + parser.add_argument("--out", type=Path, help="Optional JSON output path.") + args = parser.parse_args() + + report = { + "manuscript": inspect_docx(args.manuscript), + "template": inspect_docx(args.template), + } + + payload = json.dumps(report, ensure_ascii=False, indent=2) + if args.out: + args.out.write_text(payload, encoding="utf-8") + else: + print(payload) + return 0 + + +if __name__ == "__main__": + sys.exit(main())