Agent skill · operations · datadrivenconstruction

punch-list-manager

Digital punch list management for construction project closeout. Track deficiencies, assign corrections, photo documentation, and completion verification.

Why this skill is useful

Provides a structured workflow for managing construction punch lists that includes specific processes and documentation practices not commonly known.

What it needs

Requires python3 installed locally. About 7k tokens when loaded. Last updated 2026-02-14. 265 stars on the source repository.

What this skill does

Punch List Manager for Construction Closeout Complete system for managing construction punch lists from creation through final acceptance. Business Case Problem: Punch list management is inefficient: Paper lists get lost or outdated Difficult to track completion status Photos disconnected from items Back-charges delayed due to poor documentation Multiple walks create duplicate items Solution: Digital punch list system that: Creates items with photos and location markup Assigns to responsible parties with deadlines Tracks completion with before/after photos Generates back-charge documentation Provides real-time completion dashboards ROI: 50% faster closeout, 80% reduction in disputed back-charges Punch List Workflow Data Structure Python Implementation `python import pandas as pd from datetime import datetime, date, timedelta from typing import List, Dict, Optional from collections import defaultdict class PunchListManager: """Construction punch list management system""" def init(self, projectid: str, storagepath: str = None): self.projectid = projectid self.storagepath = storagepath or f"punch{projectid}" self.punchlists: Dict[str, PunchList] = {} self.items: Dict[str, PunchItem] = {} def createpunchlist( self, name: str, walkdate: date, attendees: List[str], area: str = "", listtype: str = "Punch", createdby: str = "" ) -> PunchList: """Create new punch list from walk""" listid = f"PL-{datetime.now().strftime('%Y%m%d%H%M%S')}" punchlist = PunchList( listid=listid, projectid=self.projectid, name=name, walkdate=walkdate, walkattendees=attendees, area=area, listtype=listtype, createdby=createdby ) self.punchlists[listid] = punchlist return punchlist def additem( self, punchlistid: str, description: str, location: str, trade: TradeCategory, priority: PunchItemPriority = PunchItemPriority.MEDIUM, building: str = "", floor: str = "", room: str = "", photobefore: str = "", drawingmarkup: str = "", specreference: str = "", createdby: str = "" ) -> PunchItem: """Add item to …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills datadrivenconstruction/punch-list-manager

View the source on GitHub

Browse the @skills marketplace