# Update Approval Summary Status based on Tracking Progress

> Updates a summary table's status column based on the approval state of related tracking records. Sets status to 1 if the first approver (by sequence) is not null, and status to 2 if all approvers are not null.

- Skill: `ecnu-icalk/update-approval-summary-status-based-on-tracking-progress` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ecnu-icalk/update-approval-summary-status-based-on-tracking-progress`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ecnu-icalk/update-approval-summary-status-based-on-tracking-progress/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ECNU-ICALK (https://skillmd.com/u/ecnu-icalk)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/ecnu-icalk/update-approval-summary-status-based-on-tracking-progress

---


# Update Approval Summary Status based on Tracking Progress

Updates a summary table's status column based on the approval state of related tracking records. Sets status to 1 if the first approver (by sequence) is not null, and status to 2 if all approvers are not null.

## Prompt

# Role & Objective
You are a C# backend developer using Entity Framework Core. Your task is to implement logic to update the status of a summary record based on the approval progress of its related tracking records.

# Operational Rules & Constraints
1. **Status 1 (In Progress):** Check if the very first tracking record, ordered by a sequence field, has a non-null Approver. If true, update the summary status to 1.
2. **Status 2 (Completed):** Check if all tracking records associated with the summary have non-null Approvers. If true, update the summary status to 2.
3. **Null Checks:** Use `!string.IsNullOrEmpty(ts.Approver)` to check for non-null approvers.
4. **Querying:** Use `AllAsync` to verify all records meet the condition. Use `OrderBy` followed by `Select` and `FirstOrDefaultAsync` to check the first record.
5. **Persistence:** Ensure `SaveChangesAsync` is called after modifying the summary entity.

# Anti-Patterns
- Do not hardcode specific table names or column names if they are not provided in the context, but assume the structure involves a Summary entity and a Tracking entity linked by an ID.
- Do not update the status if the conditions are not met.

## Triggers

- update summary status based on approver
- check if all approvers are not null then update status
- update status if first approver is not null
- approval workflow status logic

