name: construction-diary-creation description: Extracts structured data from Finnish construction site daily diary audio recordings (Työmaapäiväkirja) and creates a formatted Word document with extracted fields. Use when the user needs to process construction site manager's audio diary recordings into standardized documentation.
Construction Diary Creation (Työmaapäiväkirja)
Transcribes audio recordings from construction site managers and extracts structured information required for official daily construction site diaries (Työmaapäiväkirja). Outputs a clean MS Word document with a 2-column table containing all extracted fields.
This skill is designed to run in Claude Desktop with:
- An MCP gaik-transcriber server (for transcribing audio/video recordings)
When to Use
Use this skill when:
- User needs to process a construction site diary audio recording
- User mentions "työmaapäiväkirja", "construction diary", or "site diary"
- User wants to extract structured information from site manager's audio notes
- User asks to process or transcribe a construction site recording
- User provides an audio file from a Finnish construction site
Input
Required:
- Audio/video recording file path (e.g.,
.mp3,.m4a,.wav,.mp4, etc.) - The recording should contain a construction site manager verbally describing the day's events
Required parameter:
audio_file_path: Full path to the audio/video recording. If not provided, ask the user to specify it.
Tooling Rules (Windows vs Linux Path Safety)
Why this matters
On Windows, Claude Desktop + toolchains sometimes behave like they are in a POSIX shell, producing paths like /mnt/c/....
Meanwhile, your MCP servers may run native Windows Python, expecting C:\....
This mismatch can cause "file not found" or failing shell commands.
Strict rules
Prefer Windows drive-letter paths on Windows Pass file paths like
C:\Users\...\recording.m4ato the gaik-transcriber.Avoid bash commands on Windows If you must run a command on Windows, prefer PowerShell.
When calling gaik-transcriber, use Windows drive-letter paths Pass file paths like
C:\Users\...\recording.m4a. If you only have a POSIX/WSL path (e.g.,/mnt/c/...), convert it to a Windows path before calling the transcriber.Never assume the environment is Linux Treat the runtime as OS-ambiguous and enforce the above rules to stay stable.
Never do the following:
- NEVER run pip install, python -c, or any ad-hoc parsing code
- NEVER use /mnt/user-data/uploads/... paths unless explicitly provided by the environment
Workflow
Step 1 — Get Audio File Path
If the user has not specified an audio file path, ask for it:
- Request the full path to the audio recording
- Verify the path uses Windows format (e.g.,
C:\Users\...) on Windows systems - Confirm the file exists before proceeding
Step 2 — Transcribe Audio (gaik-transcriber MCP tool)
Call the transcription MCP tool:
gaik-transcriber:transcribe_audio
file_path: <full_path_to_audio_file>
enhanced: false
Parameters:
file_path: Full Windows path to the recordingenhanced: Always usefalse(standard transcription is sufficient)
If transcription fails:
- Check the path format (ensure Windows drive-letter paths on Windows)
- Report the error clearly to the user
- Do NOT proceed with extraction if transcription fails
Important: Preserve the entire transcription text for the extraction step.
Step 3 — Extract Structured Fields
From the transcription, extract the following 20 fields exactly as specified.
CRITICAL EXTRACTION RULES:
- Use Finnish field names exactly as listed below
- If a field is not mentioned in the transcript, return an empty string ("")
- Keep extracted values BRIEF - use only tight keywords, not full sentences
- Do NOT hallucinate or invent information
- For fields with predefined lists, ONLY select from those lists
- Follow the specified format for each field exactly
Fields to Extract (Finnish):
1. Kohde
- Description: Address or subject of the diary
- Format: Do not write numbers in words
- Example:
3285-00 Komeetankuja 6, 02210 Espoo - If not mentioned: return
""
2. Laatija
- Description: Name of the author recording the diary
- Format: Full name as mentioned
- If not mentioned: return
""
3. Sää
- Description: Weather conditions
- Format: Temperature, wind speed, humidity, ground temperature
- Example:
3 °C, 2 m/s, 78 % suht. kosteus, Kp: -1.4 C - If not mentioned: return
""
4. Päivämäärä
- Description: Date of the diary entry
- Format:
dd.mm.yyyyordd.mmif year not mentioned - Example: If audio says "20.5", return
20.05 - If not mentioned: return
""
5. Resurssit - Henkilöstö
- Description: Personnel resources for the day
- Format:
Työnjohtajat: X hlö, Työntekijät: Y hlö, Alihankkijat: Z hlö, Yhteensä: W hlö - Note: Use 0 for categories with no information
- Example:
Työnjohtajat: 2 hlö, Työntekijät: 1 hlö, Alihankkijat: 4 hlö, Yhteensä: 7 hlö - If not mentioned: return
""
6. Työviikko
- Description: Work week number
- Format: Number only (e.g.,
2,15) - If not mentioned: return
""
7. Päivän työt
- Description: List all tasks of today
- Include: Completed, partially completed, incomplete, ongoing, and newly started work
- Format: Brief bullet points or comma-separated list
- If not mentioned: return
""
8. Päivän tapahtumat
- Description: Unusual events that were not anticipated
- Format: ONLY tight keywords
- If no unusual events: return
Ei tapahtumia - If not mentioned: return
Ei tapahtumia
9. Liitteet
- Description: Number and type of attachments
- Format: Count and type (e.g.,
4 kuvaa, 1 sähköpostin liite, 1 muistiinpano) - Example:
4 photos, 1 email attachment, 1 note - If not mentioned: return
""
10. Valvojan huomiot
- Description: Supervisor's general notes about the day
- Format: ONLY tight keywords
- Only if explicitly mentioned
- If not mentioned: return
""
11. Päivän poikkeamat
- Description: Issues or deviations in work
- Format: ONLY tight keywords
- Examples: delay, damage, unplanned finding
- Only if mentioned
- If not mentioned: return
""
12. Aloitetut työvaiheet
- Description: Work phases started today
- MUST CHOOSE ONLY FROM THIS LIST:
- Asbestipurku
- sisäpurku
- rungon purku
- lajittelu
- työmaan aitaus
- pölynhallinta
- massojen ajo
- romun ajo
- perusten purku
- pulverointi
- timanttityöt
- suojaustyöt
- metalli- ja putkipurku työt
- polttoleikkaus
- If no match or not mentioned: return
""
13. Käynnissä olevat työvaiheet
- Description: Work phases currently ongoing
- MUST CHOOSE ONLY FROM THIS LIST:
- Asbestipurku
- sisäpurku
- rungon purku
- lajittelu
- työmaan aitaus
- pölynhallinta
- massojen ajo
- romun ajo
- perusten purku
- pulverointi
- timanttityöt
- suojaustyöt
- metalli- ja putkipurku työt
- polttoleikkaus
- If no match or not mentioned: return
""
14. Päättyneet työvaiheet
- Description: Work phases completed today
- MUST CHOOSE ONLY FROM THIS LIST:
- Asbestipurku
- sisäpurku
- rungon purku
- lajittelu
- työmaan aitaus
- pölynhallinta
- massojen ajo
- romun ajo
- perusten purku
- pulverointi
- timanttityöt
- suojaustyöt
- metalli- ja putkipurku työt
- polttoleikkaus
- If no match or not mentioned: return
""
15. Keskeytyneet työvaiheet
- Description: Work phases interrupted
- MUST CHOOSE ONLY FROM THIS LIST:
- Asbestipurku
- sisäpurku
- rungon purku
- lajittelu
- työmaan aitaus
- pölynhallinta
- massojen ajo
- romun ajo
- perusten purku
- pulverointi
- timanttityöt
- suojaustyöt
- metalli- ja putkipurku työt
- polttoleikkaus
- If no match or not mentioned: return
""
16. Pyydetyt lisäajat
- Description: Requested additional time/extensions
- Format: ONLY tight keywords
- Only if mentioned
- If not mentioned: return
""
17. Tehdyt katselmukset
- Description: Inspections performed
- Format: ONLY tight keywords
- Only if mentioned
- If not mentioned: return
""
18. Valvojan huomautukset
- Description: Supervisor's remarks/warnings
- Format: ONLY tight keywords
- Only if mentioned
- If not mentioned: return
""
19. Valvojan allekirjoitus
- Description: Supervisor's signature
- Only if explicitly stated
- If not mentioned: return
""
20. Vastaavan allekirjoitus
- Description: Responsible person's signature
- Only if explicitly stated
- If not mentioned: return
""
Step 4 — Generate Word Document
Before creating the document, view the docx skill:
view /mnt/skills/public/docx/SKILL.md
Then create a new Word document using the docx skill's "Creating a new Word document" workflow.
Document Structure:
Title:
TYÖMAAPÄIVÄKIRJA(centered, bold, large font)2-Column Table:
- Column 1: Field name (Finnish)
- Column 2: Extracted value
- Include all 20 fields in order, even if value is empty string
Table Format:
| Kenttä | Arvo |
|-----------------------------|--------------------------------|
| Kohde | [extracted value or ""] |
| Laatija | [extracted value or ""] |
| Sää | [extracted value or ""] |
| Päivämäärä | [extracted value or ""] |
| Resurssit - Henkilöstö | [extracted value or ""] |
| Työviikko | [extracted value or ""] |
| Päivän työt | [extracted value or ""] |
| Päivän tapahtumat | [extracted value or "Ei tapahtumia"] |
| Liitteet | [extracted value or ""] |
| Valvojan huomiot | [extracted value or ""] |
| Päivän poikkeamat | [extracted value or ""] |
| Aloitetut työvaiheet | [extracted value or ""] |
| Käynnissä olevat työvaiheet | [extracted value or ""] |
| Päättyneet työvaiheet | [extracted value or ""] |
| Keskeytyneet työvaiheet | [extracted value or ""] |
| Pyydetyt lisäajat | [extracted value or ""] |
| Tehdyt katselmukset | [extracted value or ""] |
| Valvojan huomautukset | [extracted value or ""] |
| Valvojan allekirjoitus | [extracted value or ""] |
| Vastaavan allekirjoitus | [extracted value or ""] |
Document Formatting:
- Use clean, professional formatting
- Table should have borders
- First column (field names) should be slightly bold
- Keep the document simple and readable
Step 5 — Save and Present
- Save the document with a descriptive filename, e.g.,
Tyomaapaivakirja_[Date].docx - Use
present_filesto share the document with the user
Guardrails
Critical Rules to Prevent Hallucination:
MUST DO:
- Extract ONLY information explicitly mentioned in the transcript
- Use exact Finnish field names as specified
- Keep extracted values BRIEF (tight keywords only)
- Return empty string ("") if field not mentioned in transcript
- For work phases (fields 12-15), ONLY select from the predefined lists
- For date fields, follow the exact format specified
- Preserve numbers as numbers, not words (e.g., "3285" not "kolmetuhatta...")
MUST NOT DO:
- NEVER invent or hallucinate information not in the transcript
- NEVER add assumptions or interpretations
- NEVER use values outside predefined lists for work phase fields
- NEVER create full sentences when "tight keywords" are requested
- NEVER leave out fields from the table (include all 20 fields)
- NEVER change Finnish field names
- NEVER guess dates, numbers, or names
Field-Specific Validation:
Date (Päivämäärä):
- Must be in format
dd.mm.yyyyordd.mm - If transcript says "twentieth of May", extract as
20.05
Resources (Resurssit - Henkilöstö):
- Must follow exact format with categories and counts
- Use 0 for categories with no information
- Must include "Yhteensä" (total) if any category has data
Work Phases (Fields 12-15):
- STRICT: Only use values from the predefined list
- If transcript mentions a work type not in the list, return
"" - Multiple values can be comma-separated if multiple phases apply
Päivän tapahtumat:
- Special case: If nothing unusual mentioned, return
Ei tapahtumia - Otherwise use tight keywords only
Error Handling:
If transcription fails:
- Report error clearly to user
- Do NOT attempt extraction without transcript
- Provide troubleshooting steps (check file path, file format, etc.)
If transcript is unclear or ambiguous:
- Extract what is clear
- Return
""for unclear fields - Do NOT guess or make assumptions
If transcript is in wrong language:
- Attempt extraction anyway
- Note to user that transcript may not match expected Finnish format
Examples
Example 1: Standard Daily Diary
User prompt: "Process this construction diary recording: C:\Sites\diary-2024-05-20.mp3"
Expected behavior:
- Transcribe audio using gaik-transcriber
- Extract all 20 fields from transcript
- Create Word document with 2-column table
- Save as
Tyomaapaivakirja_20.05.2024.docx - Present file to user
Example 2: Minimal Information
User prompt: "Extract diary data from C:\Audio\site-note.m4a"
Expected behavior:
- Transcribe audio
- Extract available fields
- Return
""for fields not mentioned - Return
Ei tapahtumiafor Päivän tapahtumat if nothing unusual - Create document with all 20 fields (including empty ones)
- Present file to user
Example 3: Missing File Path
User prompt: "Create a construction diary from my recording"
Expected behavior:
- Ask user for the audio file path
- Explain format needed (e.g.,
C:\path\to\file.mp3) - Wait for user to provide path
- Proceed with transcription and extraction once path is provided
Notes
- The skill focuses on accurate extraction over fancy formatting
- Never hallucinate - empty fields are acceptable and expected
- The transcript may contain casual speech, filler words, and unclear audio - extract what is clear
- Work phase lists are closed sets - do not add values not in the lists
- All Finnish terminology must be preserved exactly as specified
- The output document should be simple and professional, suitable for official construction documentation