skill存档

Decision rules

Source authority

Date and weekly file

Title matching

Normalize Unicode width, whitespace, punctuation, quote marks, and capitalization. Do not silently correct the schedule. Preserve the verbatim title separately.

Use an exact normalized title match for teacher/detail extraction. A fuzzy match is a candidate list, never automatic evidence. Equal or conflicting candidates require user confirmation.

Delivery and time

Read each schedule image’s own legend before interpreting its cells. Color mappings are local to the image: green, pink, orange, or another color may mean live in different schedules. Never carry a color mapping from one class image to another.

Use a two-pass scan: pass one counts course blocks only; pass two transcribes them from top to bottom. Preserve a target-cell crop in schedule-evidence/ when practical. Record the expected block count and a 1-based index for each course. The class extraction is invalid unless its indices equal exactly 1..expected count. A shared class heading in Word does not merge its courses.

Read delivery only from the current schedule’s legend/cell encoding, an explicit schedule label, or explicit user confirmation. Store the block color, legend text, evidence source, and evidence statement. Do not infer delivery from course history, time, teacher, common practice, or words in the course title. In particular, 直播间, 直播贴片, and a bare occurrence of 直播 inside a title are not proof of a live class.

Historical DOCX delivery is supplementary catalog metadata only. Parse it only from explicit markers such as 直播预告通知, 录播课程已更新, or a standalone (直播); when no explicit marker exists, store unknown rather than defaulting to recorded. Historical delivery never overrides Stage A schedule evidence.

The time must come from the schedule, current trusted copy, or user confirmation. Do not carry an old time into the new date merely because the course title matches.

Treat delivery and time as a coupled review unit but as separate facts. If a user changes live to recorded or the reverse, show both old and proposed new values. A delivery-only instruction does not authorize inventing a new time.

Course changes and semantic diff

Identify a course by normalized class plus normalized course title, never by a DOCX paragraph index. Apply changes to the manifest, regenerate outputs, and compare the before/after manifests. A one-course request must produce a diff for exactly that course; any other changed course is a hard stop. Reset the Stage A approval fingerprint whenever an approved field changes.

Confirmed aliases and field evidence

A fuzzy historical match remains a hard stop until confirmed. After explicit confirmation, persist an alias mapping with canonical title, matched title, teacher constraint, source, and confirmation timestamp. Reuse it only when the constraints still match.

Record provenance separately for tools, homework, and objectives. A field borrowed from an exact-title/teacher poster must retain poster provenance and must not be described as DOCX-sourced. Conflicting field sources require user confirmation.

Template selection

Text and poster templates have separate registries and defaults. Adding a new template does not make it default.

An explicitly named template applies only where the user scopes it. Persistent course/class/delivery rules apply after explicit choices. Default applies last. Never interpret “latest” or highest template number as an automatic choice.

Portrait decision

First inspect the chosen PSD:

Select only PNG files from the user-configured folder. One match may be selected automatically. Multiple matches require the exact filename. Identical filenames in different subfolders are ambiguous and must be renamed before use.

An alpha channel alone does not prove the background is removed. Inspect the pixels visually. Replacing the reference file after cutout always requires an approved preview and a recoverable backup.

Output safety

Layout regression rules

Batch publication and reuse

Before copying any new course PSD, preflight the whole batch for working-source existence, final PNG existence, exact internal title evidence, unique course-title-to-PSD mappings, and destination conflicts. Publish only titles with zero existing matches. A partial publish is an incomplete run and must be reported as such.

Historical text catalog hygiene

Only canonical weekly filenames are eligible historical course-copy sources. Skip legacy weekly variants with suffixes such as _FINAL, _new, or _v2 so that multiple versions of the same course cannot create false exact matches.