alpacalabsllc/site-visit-report
Create a typed, source-linked site visit report from field notes, photos, files, or conversation. Use for site observations, field reports, walkthrough records, existing-condition visits, and follow-up capture. Separate direct observations, participant-reported information, interpretation, limitations, issues, and proposed follow-ups. Saving a report never changes PROJECT.md, decisions/, or TASKS.md; promote only user-selected items afterward.
npx skills add https://github.com/AlpacaLabsLLC/skills-for-architects --skill site-visit-report
Create an auditable record of a site visit without turning limited observation, hearsay, or interpretation into verified professional conclusions.
/as:site-visit-report from field-notes/2026-07-21.md
/as:site-visit-report document today's walkthrough and attached photos
/as:site-visit-report revise site-reports/2026-07-21-roof-walkthrough.md
Not observed, never “no issue observed.”PROJECT.md, decisions/*.md, or TASKS.md.Unknown, Not recorded, or Not observed.Run the shared resolver and follow skills/project/references/context-resolution.md. Resolve exactly one validated project before reading sources or choosing a target. A studio-picker result requires one structured project-selection gate; do not ask first in prose. Stop on invalid, no-projects, or no-context. Resolve all inputs, the report target, and links relative to the selected project.
Read the supplied notes, photos, drawings, files, and relevant conversation. Preserve each input as a project-relative source reference. For a conversational source, record Current conversation (not separately archived).
Determine independently:
Never infer the visit date from file metadata. Treat photo timestamps and filesystem modification times as metadata, not proof of the visit date.
Assign stable labels and do not merge categories:
O1, O2 — direct observations: what was visible or otherwise directly perceived, with location and source/photo references.R1, R2 — participant-reported information: what someone stated, attributed when known, and marked Reported; not independently verified.I1, I2 — interpretations: a limited inference from identified observations, explicitly marked as interpretation and never presented as fact or compliance analysis.ISS1, ISS2 — issues: conditions requiring review, clarification, testing, or action; state urgency only when the source supports it.F1, F2 — proposed follow-ups: candidate actions, with proposed owner and due date when known; not canonical tasks until selected through /as:tasklist.Link photographs and files to the exact item they support. Do not describe an image you cannot inspect. Do not use a participant statement to populate Direct Observations, even when the statement seems plausible. A contractor statement that a wall is non-load-bearing remains participant-reported and unverified; it is not a structural finding.
For each inaccessible, obscured, untested, or concealed area relevant to the visit, record a specific limitation. Absence of an observation is not evidence of absence.
Use:
site-reports/YYYY-MM-DD-<descriptive-slug>.md
Use the visit date in the filename. Resolve and show the exact project-relative target. If it exists:
-02, -03, and so on. Check the suffixed path before writing. Never overwrite merely because date and title match.Resolve the bundled template relative to the loaded skills/site-visit-report/SKILL.md when the harness exposes that path. On Claude Code, ${CLAUDE_PLUGIN_ROOT}/skills/site-visit-report/templates/site-visit-report.md is the fallback. If bundled resources are unavailable, reproduce every section required by Step 3 plus visit metadata, sources, photos/files, limitations, and the disclaimer behavior below.
Write the complete report and confirm its saved path. At this point stop all other mutation and verify that PROJECT.md, decisions/, and TASKS.md were not changed by saving the report.
Append the canonical disclaimer block at the very end when either condition is true:
If uncertain whether the report will be submitted externally, include it. A purely internal administrative draft containing observations, logistics, photo references, and follow-up coordination—but no regulated conclusion—may omit it. Omission does not relax the concealed-condition, certainty, or compliance prohibitions.
When the bundled rule is available, read rules/professional-disclaimer.md. Otherwise use this exact fallback as the final content, with one blank line between the block and marker:
> Disclaimer: This is an AI-generated analysis for preliminary planning purposes. All findings must be verified by a licensed professional before use in design, permitting, or regulatory submissions.
<!-- architecture-studio:requires-disclaimer -->
The marker is a terminal sentinel. Do not place anything after it.
After saving, present separate candidate lists:
/as:project remember. Do not propose reported information or interpretation as verified facts./as:project record-decision; observations and issues are not decisions.F# follow-ups suitable for /as:tasklist.Explain that no downstream record has changed. Require exact item labels such as O2, F1, or none. Before handoff, search the owning record for the same project-relative report link and item label; when found, show it and offer link/update/new rather than silently duplicating it. Do not promote unselected siblings.
When direct skill invocation exists, invoke the owning skill once per selected record type and pass the report path and exact labels. The destination skill owns confirmation and mutation.
When direct invocation is unavailable, leave the report intact and print only applicable copyable commands in this form:
/as:project remember selected verified observation O2 from site-reports/2026-07-21-roof-walkthrough.md; preserve the source backlink and verify it before recording as a project fact
/as:project record-decision selected durable choice from site-reports/2026-07-21-roof-walkthrough.md; preserve the exact source item label and backlink
/as:tasklist import selected follow-ups F1, F3 from site-reports/2026-07-21-roof-walkthrough.md; preview duplicates and changes before writing
If nothing is selected, finish with the site report only.
Take alpacalabsllc/site-visit-report from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.