Input Contract
The caller should provide:
input_diror an explicit file list/document contentoutput_dir- Author or account name
- Optional article list, preferably including title, link, and publication time
generate_html: defaulttruesync_lark: defaulttrue
When input is insufficient, first look for discoverable content in the workspace; only ask the user if there are still no main text samples. Do not analyze based only on titles.
Supported formats and processing boundaries:
- Markdown/TXT: use the built-in parser.
- DOCX: prefer using
python-docx; report an explicit error when unavailable. - PDFs with extractable text: prefer using
pypdf; when scanned PDFs have no text, mark them as requiring OCR and do not fabricate main text. - Feishu documents: first read according to the current
lark-docskill, then use the main text as input. - When multiple formats are mixed, uniformly convert them into article records, but retain the original file paths and source types.
Output Contract
Always write to the caller-provided output_dir:
<output_dir>/
<博主>-方法论报告.md
<博主>-文案框架.md
<博主>-分析数据.json
<博主>-文章特征.csv
<博主>-方法论看板.html # 默认生成的学习者视角看板
<博主>-飞书同步.json # 成功同步后生成
<博主>-竞品标题样本.json # 提供竞品样本时生成
All root directory artifacts uniformly use the "<博主>-<功能>.<扩展名>" naming.<博主>-分析数据.json and <博主>-文章特征.csv are auditable deliverables, not temporary files. The report, HTML, and Feishu content must use the same analysis data. Only turn off the corresponding step when the user explicitly requests "do not generate HTML" or "do not sync to Feishu."
This skill generates the copywriting framework on its own based on references/copywriting-framework-template.md , without relying on an external skill named creator-copywriting-framework .
Workflow
1. Establish the sample list
-
Run the deterministic analysis script:
python3 scripts/analyze_corpus.py \ --input "<input_dir>" \ --output "<output_dir>" -
The script is responsible for format parsing, deduplication, preservation of image references, basic statistics, and article-level features.
-
When there are fewer than 5 articles, perform only descriptive analysis and clearly state low stability; when there are fewer than 3 articles, do not output conclusions about trends, evolution, or stable style.
-
When there are more than 50 articles, prioritize full-volume basic statistics; sample only when context or processing cost is clearly too high, and disclose the sampling method.
2. Preprocess the main text
- Remove noise such as navigation, advertisements, and copyright footnotes.
- Image Markdown is removed from the plain-text analysis copy, but the original position, relative path, and adjacent text must be retained in the article record for visual analysis.
- Retain heading hierarchy, lists, quotations, cases, data, and conclusion paragraphs.
- Distinguish original text excerpts from model summaries, and retain the mapping from evidence to article titles.
3. Detailed data analysis
First read <博主>-分析数据.json and <博主>-文章特征.csv, then follow references/data-analysis-framework.md to complete the explanatory analysis. Deterministic metrics must not be re-estimated by the model. Default coverage:
- Sample quality and data completeness
- Publishing frequency, cycles, continuity, and temporal distribution
- Length, paragraphs, sentences, images, and structural complexity
- Distribution of themes, motifs, objects, scenarios, questions, and content types
- Keywords, terms, concept combinations, and semantic associations
- Title length, hooks, sentence patterns, objects, promises, and title-body consistency
- Opening, body, turning points, conclusion, CTA, and common narrative paths
- Argument units such as opinions, facts, causality, comparisons, counterexamples, boundaries, and recommendations
- Evidence types such as data, citations, testing, cases, authoritative sources, and experience
- Entity networks such as people, companies, products, technologies, events, industries, locations, and models
- Strength judgments, certainty, time scales, risk attitudes, and value orientations
- Vocabulary, sentence length, rhythm, rhetoric, colloquialism, professionalism, and readability
- Target readers, use scenarios, pain points, content promises, and reader benefits
- Body action guidance such as comments, claiming materials, and purchases (only as an observation of writing structure)
- Image density, image-text placement, and the role of visual content (when data is available)
- Evolution of themes, expressions, and judgments over time (when publication time is available)
- Cross-relationships between themes and dimensions such as titles, structure, evidence, length, and CTA
- Anomalous samples, content gaps, overconcentration, and opportunities for serialization
- Do not analyze readership, sharing, likes, saves, follows, or conversion performance from the platform backend
- Title method breakdown: overall statistics on specific numbers, suspense questions, pain point conflicts, hot topic timeliness, and clear benefits; representative titles explain formulas, reasons, imitation methods, and applicable conditions
- Article structure demonstration: use opening tasks, middle-section tasks, and ending tasks to explain rhythm, and provide exercises learners can execute
- How to learn the update rhythm: observe the author's content supply method using publication days, weekday distribution, multiple posts on the same day, and intervals between articles, then design a sustainable rhythm according to the learner's time, speed of evidence accumulation, and creation stage
- Competitor topic radar: publicly search peer titles and record source links, topic types, and sample boundaries
Data and representative samples are only used to explain the author's methods; the dashboard must not be written as a report that scores, self-checks, passes/fails, or improves the author. Platform backend performance metrics do not enter the dashboard. Other content that cannot be calculated must not be estimated or fabricated. Word frequency cannot be directly equated with the author's attitude; subjective labels such as themes, memorable quotes, emotions, and positions must explain the classification rules and evidence.
By default, output from the learner's perspective, rather than only evaluating the blogger. Each core module must explain:
- What this blogger specifically does;
- Why this method is effective;
- Which abilities are worth learning;
- What exercises learners can execute;
- Which aspects depend on personal experience, resources, or platform conditions and cannot be directly copied;
- How to determine that the method has been transferred into one's own ability rather than merely imitating the surface style.
Subjective labels need to be written into <博主>-分析数据.json of annotations, and each entry includes:
dimension,label,article_ids,evidence,rule,confidence
In this way, the themes, positions, readers, and memorable quote conclusions in the report can be traced back to the articles.
4. Extract methodology
The main report uses references/report-template.md. The data chapter cites <博主>-分析数据.json metrics and article IDs, without creating a second set of numbers; the methodology chapter is responsible for explaining the data facts and must include at least:
The report's "sample description" must include dataset_sha256for consistency verification.
- Author positioning and content persona
- Reader persona and content benefits
- Content asset map
- Topic selection system
- Analytical framework
- Judgment criteria
- Expression templates
- Case library
- Punchline style
- Content gaps and topic opportunities
- Reusable writing SOP
- Risks and boundaries
- Sample list
For each key conclusion, cite 2-5 article titles, short excerpts, or cases wherever possible. Keep original quotations necessary and brief; abstract templates must be labeled "abstract template," and structured examples must be labeled "not the author's original text."
5. Generate an independent copywriting framework
Use references/copywriting-framework-template.md to generate <博主>-文案框架.md. The template only defines structure and does not preset any author-style sentence patterns; all formulas must be induced from sample evidence, including:
- Topic selection scaffold
- 8-15 title formulas
- Multiple types of opening templates
- At least 3 sets of body structures
- Paragraph sentence patterns and transition sentences
- Punchline sentence generator
- Closing CTA
- 1-2 structured examples with changed topics, cases, and wording
- Pre-publication checklist and prohibited boundaries
Learn only the structure; do not replicate the author's unique expressions, and do not impersonate the author.
6. Automatically generate HTML
The HTML dashboard is the standard deliverable of this skill, not optional chat-attached content. When generating, you must read
references/interactive-dashboard-template.md, and directly use the built-in
scripts/generate_dashboard.pyof this skill; do not temporarily switch to another generic BI template.
Default run:
python3 scripts/generate_dashboard.py \
--data "<output_dir>/<博主>-分析数据.json" \
--output "<output_dir>/<博主>-方法论看板.html"
HTML and Markdown must share the deterministic statistics in <博主>-分析数据.json . The model-generated methodology summary can be written back as additional data to annotations, and must not overwrite script-calculated fields.
The dashboard must maintain the following fixed structure:
- Understand at a glance
- Positioning and value
- Content map
- Topic selection methods
- Article writing methods
- Viewpoints and evidence
- Language style
- Worth learning
- Operations growth
- Learning and transfer
All sections should take the learner's perspective and focus on answering "what should I learn and how should I learn it," and must not revert to author self-review, article scoring, or platform performance analysis. At the bottom of the page, keep only a brief source note and disclaimer; do not set up a separate "Data and Boundaries" section.
After generation, use a browser to check the console, main interactions, and visual readability.
Skip only when the user explicitly requests not to generate HTML, that is, generate_html=false .
7. Automatically sync to Feishu
First check the source boundaries:
- All samples come from public URLs or public article archives: sync by default.
- Samples come from local interviews, internal documents, private Feishu documents, or sensitive scan hits: pause automatic upload and ask the user for confirmation.
After confirming it can be synced, load lark-doc:
- First complete the local Markdown.
- If
<博主>-飞书同步.jsonalready contains an accessibledoc_token, update that document; otherwise create a new document. - Write and read-verify according to the interface specification of the current
lark-docskill. - Will
doc_token, URL, title, content fingerprint and update time are written to<博主>-飞书同步.json。 - After verifying that the key sections exist, return the URL.
A Feishu failure must not affect the local file completion status.
Skip only when the user explicitly requests not to sync to Feishu, that is, sync_lark=false .
Quality Gates
-
<博主>-分析数据.jsonand<博主>-文章特征.csvmust be generated by the script. -
Conclusions are based on the main text and disclose sample boundaries.
-
Observable statistics and subjective induction are clearly distinguished.
-
Data analysis covers all computable dimensions as much as possible, and clearly identifies unavailable fields.
-
Each important statistic explains its scope, denominator, classification rules, or calculation method.
-
Each data module is connected to representative articles and methodological insights.
-
Each core module has evidence and reusable actions.
-
When cases are insufficient, explicitly write "no stable case library has been formed".
-
Do not infer author intent that cannot be supported by the sample.
-
All local output paths are located in
output_dir。 -
HTML and Feishu are completed by default; when the user explicitly disables them, record the reason for skipping.
-
The HTML navigation must have ten fixed sections, and the bottom must include source notes and a disclaimer.
-
The HTML must not contain a separate "Data and Boundaries" section, and must not contain author-facing evaluation modules such as "self-check, scoring, pass/fail".
-
Final run:
python3 scripts/validate_outputs.py "<output_dir>"
References
references/report-template.md: read when generating the main report.references/data-analysis-framework.md: read when performing detailed data analysis.references/copywriting-framework-template.md: read when generating an independent copywriting framework.references/interactive-dashboard-template.md: read when generating HTML by default.references/analysis-data.schema.json: shared analysis data structure.scripts/analyze_corpus.py: parse the corpus and generate deterministic feature data.scripts/generate_dashboard.py: generate offline HTML from a shared data source.scripts/validate_outputs.py: verify the consistency of data, reports, HTML, and sync metadata.