Construction document annotation and markup system for superintendents. Produce redline markups, revision clouds, text annotations, symbol placement, color-coded discipline markups, and layered annotation management on plans, specs, photos, and RFIs. Generate annotated PDFs using PyMuPDF/fitz and reportlab, annotated images for photo documentation, and HTML annotated views for dashboard integration. Integrates with document-intelligence, rfi-preparer, punch-list, daily-report-format, and drawing-control. Triggers: "annotate", "markup", "redline", "cloud", "mark up plans", "annotate drawing", "redline drawing", "photo markup", "punch list photo", "annotate spec", "spec markup", "RFI markup", "as-built markup", "callout", "dimension callout", "field note on drawing", "highlight on plan", "revision cloud", "annotation layer", "color-coded markup".
From foremanos-doccontrolnpx claudepluginhub mgoodman60/foreman-os-plugin --plugin foremanos-doccontrolThis skill uses the workspace's default tool permissions.
references/markup-conventions-guide.mdreferences/skill-detail.mdGuides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Details PluginEval's skill quality evaluation: 3 layers (static, LLM judge), 10 dimensions, rubrics, formulas, anti-patterns, badges. Use to interpret scores, improve triggering, calibrate thresholds.
The document-annotation skill provides programmatic construction document markup and annotation capabilities for superintendents and field managers. This skill does not replace Bluebeam Revu or PlanGrid for interactive markup sessions -- it provides automated, data-driven annotation that turns extracted project data into marked-up documents ready for field distribution, RFI submission, punch list documentation, and as-built recording.
Construction documents are only useful when the right information reaches the right trade at the right time. A 200-page spec book is useless to the plumber who needs three paragraphs about fixture rough-in requirements. A full set of architectural plans means nothing to the electrician who needs to know which rooms have dedicated circuits. This skill bridges that gap by producing annotated, trade-specific document extracts that put actionable information directly on the drawings, specs, and photos that field crews actually use.
Core capabilities:
Critical distinction: This skill produces output documents. It takes source documents (plans, specs, photos) and produces annotated versions with markup applied. The annotations are data-driven -- they come from project data, field observations, RFI content, punch list items, and extracted document intelligence, not from freehand drawing.
Traditional markup workflow:
Data-driven annotation workflow:
This skill enables the superintendent to produce professional, consistent, traceable document markup at scale -- not one drawing at a time, but entire packages of annotated documents for distribution.
Redline markup is the fundamental language of construction document revision. This skill supports programmatic generation of all standard redline markup types.
Revision Clouds
Redline Annotations
Implementation: PDF markup is generated using PyMuPDF (fitz) for reading and modifying existing PDFs, and reportlab for generating new annotation overlays. The workflow:
Text annotations place readable information directly on drawings at specific locations. All text follows construction document conventions for readability at typical reproduction scales.
Note Annotations
Comment Annotations
Label Annotations
Callout Annotations
Standard construction markup symbols communicate specific meanings without text. This skill places symbols programmatically at specified coordinates.
| Symbol | Name | Meaning | Usage |
|---|---|---|---|
| Triangle (delta) | Revision triangle | Marks a revision or change | Placed next to revised elements with revision number inside |
| Cloud outline | Revision cloud | Encloses area of change | Drawn around the affected area on the drawing |
| Arrow (straight) | Direction arrow | Indicates direction of flow, access, or reference | Placed on plans for traffic flow, pipe flow, access routes |
| Arrow (curved) | Rotation arrow | Indicates rotation or turning direction | Equipment orientation, door swing direction |
| Circle with crosshairs | Control point | Survey or layout control point | Placed at survey control locations |
| Diamond | Hold point | Inspection or quality hold point | Placed at locations requiring inspection before proceeding |
| Flag | Flag/attention | Calls attention to a specific item | General attention marker for important notes |
| X (cross) | Deficiency | Marks a deficient condition | Placed on photos or plans at deficiency locations |
| Checkmark | Verified/approved | Marks verified or approved condition | Placed on items that pass inspection |
| Circle with number | Callout bubble | Numbered reference to legend | Sequential numbering for punch list, inspection items |
| Dashed rectangle | Zone boundary | Defines a work zone or area | Drawn around work areas, hold zones, safety zones |
| Hatched area | Restricted zone | Indicates restricted or no-access area | Drawn over areas with access restrictions |
Industry convention assigns specific colors to discipline-specific markup. Consistent color coding allows field crews to immediately identify which trade a markup applies to.
| Discipline | Primary Color | RGB Value | Hex Code | Usage |
|---|---|---|---|---|
| Architectural | Black | (0, 0, 0) | #000000 | Architectural markups, general notes, dimensions |
| Structural | Red | (255, 0, 0) | #FF0000 | Structural markups, beam/column modifications, load paths |
| Mechanical (HVAC) | Green | (0, 128, 0) | #008000 | Ductwork routing, equipment placement, diffuser locations |
| Electrical | Blue | (0, 0, 255) | #0000FF | Conduit routing, panel locations, device placement |
| Plumbing | Purple | (128, 0, 128) | #800080 | Pipe routing, fixture locations, drain lines |
| Fire Protection | Red-Dashed | (255, 0, 0) dashed | #FF0000 | Sprinkler routing, head locations, FDC, standpipes |
| Civil/Site | Brown | (139, 90, 43) | #8B5A2B | Grading, utilities, paving, site features |
| Safety | Orange | (255, 140, 0) | #FF8C00 | Safety zones, barricades, fall protection, exclusion areas |
| General/Multi-trade | Magenta | (255, 0, 255) | #FF00FF | Multi-discipline coordination, general field notes |
| Owner/Design team | Cyan | (0, 200, 200) | #00C8C8 | Owner comments, design team responses, ASI markups |
Fire protection distinction: Fire protection uses the same red as structural but with a dashed line pattern to differentiate. When both structural and fire protection markups appear on the same sheet, the dash pattern provides clear visual separation.
Discipline color override: Project-specific color conventions may differ. The annotation system allows color override per project through the project configuration.
Annotations are organized into layers that can be toggled, filtered, and managed independently. Layer management enables multiple annotation types to coexist on a single document without visual clutter.
Standard Annotation Layers:
| Layer Name | Content | Default Visibility |
|---|---|---|
RFI_REFERENCES | RFI markup -- highlighted question areas, RFI numbers, cross-references | Visible |
FIELD_NOTES | Superintendent field notes, observations, measurements | Visible |
QC_MARKS | Quality control inspection marks, verification stamps, deficiency flags | Visible |
SAFETY_ZONES | Safety barricade lines, exclusion zones, fall protection boundaries | Visible |
WORK_AREAS | Work zone boundaries, trade access routes, staging areas | Visible |
DIMENSIONS | Field-verified dimensions, deviation callouts, measurement annotations | Visible |
REVISIONS | Revision clouds, delta symbols, change descriptions | Visible |
PUNCH_ITEMS | Punch list callouts, deficiency markers, numbered references | Visible |
AS_BUILT | As-built redlines showing field deviations from design | Visible |
HOLD_POINTS | Inspection hold points, QC stop points, witness test locations | Visible |
TRADE_SPECIFIC | Trade-specific annotations filtered by discipline color | Visible |
REFERENCE | Background reference annotations, spec section references, code citations | Hidden by default |
Layer naming convention: [TYPE]_[SUBTYPE] using uppercase with underscores. Custom layers follow the same pattern (e.g., SAFETY_FALL_PROTECTION, QC_CONCRETE_PLACEMENT).
PDF layer implementation: When the output PDF supports Optional Content Groups (OCG), annotations are placed on named layers that can be toggled in PDF viewers (Adobe Acrobat, Bluebeam Revu). When OCG is not supported, layers are flattened but visually distinguished by color and line style.
The most common annotation task is marking up a plan sheet with trade-specific information for field distribution. This produces a document that a foreman can hand to a crew with all relevant information visible on the drawing.
Work Area Markup
Hold Zone Markup
Sequence Markup
Trade-Specific Plan Package For each trade receiving a marked-up plan:
Specification books are dense legal documents. Field crews need the critical requirements extracted and highlighted, not the full 50-page section. This capability produces annotated spec extracts.
Spec Highlighting
Trade Field Spec Sheet A one-to-three page annotated extract from the full spec section containing:
Implementation: The document-intelligence skill extracts spec data; this skill formats it into annotated field-ready documents. The extraction provides structured data; the annotation provides visual presentation.
When preparing an RFI, the referenced drawing must be marked up to clearly identify the question area and provide context to the reviewer.
RFI Markup Elements
RFI Markup Package The complete RFI markup package includes:
Photo documentation of deficiencies requires clear annotation to communicate exactly what the problem is and where it is located.
Photo Annotation Elements
Photo Markup Standards
As-built markup records the actual field conditions that differ from the design documents. These markups become part of the permanent project record and are used for closeout documentation.
As-Built Markup Elements
As-Built Color Convention
As-Built Accuracy Requirements
Extended reference: Detailed examples, templates, scoring rubrics, and best practices are in
references/skill-detail.md.