一键导入
status-report
Use when drafting confirmation-gated Dynamics 365 TPG project status reports for projects led by the current user.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when drafting confirmation-gated Dynamics 365 TPG project status reports for projects led by the current user.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use when creating PMO management reports, PMO report suites, filtered project portfolio reports, or DOCX/XLSX PMO outputs from real Dynamics 365 TPG project data.
Run the TPG-Scheduler-Codex-Plugin PMO report suite from the repository root plugin entry.
Run the TPG-Scheduler-Codex-Plugin workflow for confirmation-gated Dynamics 365 TPG project status reporting from the repository root plugin entry.
| name | status-report |
| description | Use when drafting confirmation-gated Dynamics 365 TPG project status reports for projects led by the current user. |
Use this skill when the user asks to create, draft, collect, or update status reports for TPG projects in Dynamics 365.
For PMO reporting, the Full Board Pack / Steering Pack, portfolio management packs, the 12-report PMO suite, or DOCX/XLSX management reports, use the pmo-report-suite skill instead.
browser-use:browser skill and bind to the iab browser as described there.tpg_project records where the opened record's header field Project Manager is exactly Reiner Weisssieker.https://posp365.crm4.dynamics.com/main.aspx?appid=1a66513c-266c-ef11-bfe2-6045bd8d5d87&forceUCI=1&pagetype=entitylist&etn=tpg_project&viewid=40761dc9-c0d4-ef11-a72e-7c1e52862247&viewType=4230kv, case-insensitively after trimming whitespace, as this fixed German CRM status phrase:
Status unverändert seit letztem Bericht (keine inhaltlichen Änderungen)This workflow is executed by Codex itself through the in-app Browser surface. The helper script in scripts/statusbericht.js only contains pure constants and kv normalization tests; it must not be used as the CRM browser driver.
If Dynamics asks for login, pause and let the user complete Microsoft login manually inside the in-app browser.
Xrm.WebApi as the required production data path for candidate discovery, PMO intelligence, and monthly status planning.tpg_projecttpg_projectstpg_projectidtpg_subjecthttps://posp365.crm4.dynamics.comhttps://posp365.crm4.dynamics.com/api/data/v9.2/tpg_projects(<project-guid>)https://posp365.crm4.dynamics.com/main.aspx?appid=1a66513c-266c-ef11-bfe2-6045bd8d5d87&forceUCI=1&pagetype=entityrecord&etn=tpg_project&id=<project-guid>scripts/statusbericht.js for stable constants and URL builders:
TPG_PLUGIN_SETTINGSbuildActiveProjectsApiUrl()buildProjectRecordApiUrl(projectId)buildDynamicsProjectRecordUrl(projectId)buildPmoProjectExport(projects, options)mapProjectDataverseRow(row)evaluateProjectStatusQuality(project, options)buildBatchProjectPreview(projects, options)detectStatusDelta(project, options)evaluateStatusQuality(project, options)buildPortfolioRiskList(projects, options)extractDecisionRadar(projects)buildProjectNudges(projects, options)buildSteeringAgenda(projects, options)buildDecisionClosureItems(projects, options)buildRiskLedgerEntries(projects, options)buildNudgeDrafts(projects, options)buildManagementActionExportRows(projects, options)buildExportBundle(projects, options)buildCalibrationReport(projects, options)buildLiveDynamicsRunPlan(options)buildPmoConfig(overrides)buildGovernanceExceptions(projects, options)buildRiskTrendIntelligence(previousLedger, currentLedger)buildMeetingCaptureDrafts(meetingText, project)buildPortfolioNarrativeDiff(previousIntelligence, currentIntelligence)buildProjectManagerCoach(projects, options)buildWhatIfRecoveryPlan(project, options)buildAudienceReport(projects, options)buildDataCompletenessScore(project)buildSafeWritebackSimulation(project, draft)buildAuditEntry(input)buildExecutiveOnePager(projects, options)buildProjectIntelligence(projects, options)buildProjectSafetyGate(project, options)buildProjectSafetyGateSuite(projects, options)buildPmoProjectControls(project, projects, options)buildPmoControlTower(projects, options)buildBoardPack(projects, options)buildLogicValidationSuite(projects, options)buildLogicValidationReport(projects, options)buildLogicAssuranceUspLayer(projects, options)buildStatusUpdateDraft(statusText, options)buildMonthlyStatusReportDraft(project, statusText, options)buildMonthlyStatusReportRun(projects, options)buildStructuredStatusUpdateDraft(input, options)buildStatusUpdateDuplicateCheck(existingUpdates, draft, options)buildStatusReportIdempotencyKey(project, draft, options)validateMonthlyStatusDraft(project, monthlyDraft, options)buildStatusWritebackQueue(monthlyRun, options)buildStatusUpdateCreateRecordPlan(project, draft, metadata, options)buildStatusWritebackAuditEvent(action, payload, options)mapDataverseError(error)getDataverseBrowserSnippet()await TPGProjectAssist.retrieveProjectIntelligenceFromD365({ today: "YYYY-MM-DD" })await TPGProjectAssist.retrieveBoardPackFromD365({ today: "YYYY-MM-DD" })await TPGProjectAssist.retrieveBatchProjectPreviewFromD365({ today: "YYYY-MM-DD" })await TPGProjectAssist.retrieveStatusSuggestionReportFromD365({ today: "YYYY-MM-DD" })await TPGProjectAssist.retrieveMonthlyStatusPlanFromD365({ month: "YYYY-MM", statusText: "kv" })await TPGProjectAssist.buildLivePmoControlCenterFromD365({ today: "YYYY-MM-DD" })await TPGProjectAssist.retrieveMonthlyPmSelfServiceFlowFromD365({ month: "YYYY-MM" })TPG_PLUGIN_SETTINGS for D365 URLs, project metadata, status-update fields, workflow defaults, and safety defaults; avoid adding scattered literal settings.npm run statusbericht:dataverse
Then run that JavaScript in the in-app Browser page context. It exposes window.TPGProjectAssist.node ./scripts/statusbericht.js --intelligence <snapshot.json> --allow-offline-input --today YYYY-MM-DDnode ./scripts/statusbericht.js --board-pack <snapshot.json> --allow-offline-input --docx reports/board-pack.docx --xlsx reports/board-pack.xlsxnode ./scripts/statusbericht.js --pmo-report <snapshot.json> --allow-offline-input --project-status "In Progress" --last-status-before YYYY-MM-DD--docx reports/pmo-status.docx --xlsx reports/pmo-status.xlsxawait TPGProjectAssist.retrieveMonthlyStatusPlanFromD365({ month: "YYYY-MM" })
Offline fallback requires:
node ./scripts/statusbericht.js --monthly-status-plan <snapshot.json> --allow-offline-input --month YYYY-MM --json
The DOCX and XLSX outputs must be treated as management-ready review artifacts generated from the same filtered real project data.--json with --intelligence when another automation should consume the complete intelligence pack.--exports with --intelligence to emit CSV strings for Power BI/import workflows and JSON for automation.TPGProjectAssist.retrieveActiveProjects({ top })TPGProjectAssist.retrieveProjectIntelligenceFromD365({ today })TPGProjectAssist.retrieveBoardPackFromD365({ today })TPGProjectAssist.retrieveStatusSuggestionReportFromD365({ today })TPGProjectAssist.retrieveBatchProjectPreviewFromD365({ today })TPGProjectAssist.retrieveMonthlyStatusPlanFromD365({ month, statusText })TPGProjectAssist.retrieveProject(projectId)TPGProjectAssist.buildBatchProjectPreview(projects, { today })TPGProjectAssist.evaluateProjectStatusQuality(project, { today })TPGProjectAssist.buildProjectIntelligence(projects, { today })TPGProjectAssist.buildBoardPack(projects, { today })TPGProjectAssist.buildStatusSuggestionReport(projects, { today })TPGProjectAssist.buildStatusReportSuggestion(project, { today })TPGProjectAssist.buildPortfolioRiskList(projects, { today })TPGProjectAssist.extractDecisionRadar(projects)TPGProjectAssist.buildProjectNudges(projects, { today })TPGProjectAssist.buildSteeringAgenda(projects, { today })TPGProjectAssist.buildDecisionClosureItems(projects, { today })TPGProjectAssist.buildRiskLedgerEntries(projects, { today })TPGProjectAssist.buildNudgeDrafts(projects, { today })TPGProjectAssist.buildCalibrationReport(projects, { today })TPGProjectAssist.buildLiveDynamicsRunPlan({ today })TPGProjectAssist.detectStatusDelta(project, { proposedStatusText })TPGProjectAssist.buildAuditEntry(input)TPGProjectAssist.buildExecutiveOnePager(projects, { today })TPGProjectAssist.readCurrentProjectForm()TPGProjectAssist.verifyCurrentProjectManager("Reiner Weisssieker")TPGProjectAssist.readQuickCreateStatusUpdateFields()TPGProjectAssist.retrieveAllRecords(entityLogicalName, query, options)TPGProjectAssist.retrieveProjectDelta({ modifiedSince })TPGProjectAssist.retrieveStatusUpdates(project, { entityLogicalName, reportMonth })TPGProjectAssist.discoverStatusUpdateMetadata(options)TPGProjectAssist.probeDataversePermissions(options)TPGProjectAssist.createStatusUpdateWithConfirmation(project, draft, options)TPGProjectAssist.discoverProjectFieldMetadataFromD365(options)TPGProjectAssist.buildLivePmoControlCenterFromD365(options)TPGProjectAssist.resolveStatusUpdateEntityFromD365(options)TPGProjectAssist.retrieveMonthlyPmSelfServiceFlowFromD365(options)TPGProjectAssist.simulateStatusWritebackFromD365(project, draft, options)TPGProjectAssist.resolveSubmittedToCandidatesFromD365({ search })TPGProjectAssist.retrieveStatusHistoryTimelineFromD365(project, options)TPGProjectAssist.checkDuplicateStatusUpdateFromD365(project, draft, options)TPGProjectAssist.retrieveExecutiveSteeringPackFromD365(options)TPGProjectAssist.retrievePmoDataGapWorklistFromD365(options)TPGProjectAssist.routeCioCfoRiskFromD365(options)TPGProjectAssist.retrievePowerBiReadyPortfolioFromD365(options)TPGProjectAssist.probeD365PermissionsDetailed(options)TPGProjectAssist.buildAuditEvidencePackFromD365(options)TPGProjectAssist.pilotStatusWritebackFromD365(project, draft, options)projectId, name, projectStatusLabel, overallKpiLabel, progress, finish, lastStatusUpdate, currentStatusText, obstaclesAndMeasures, decisions, and sponsorActions.buildProjectIntelligence(projects, options).csv.managementActions, csv.riskLedger, and a JSON payload with intelligence, risk ledger, and management action rows.const xrm = window.Xrm || window.parent?.Xrm;
const formContext = xrm?.Page;
const fields = formContext.data.entity.attributes.get().map((attribute) => ({
name: attribute.getName(),
value: attribute.getValue(),
type: attribute.getAttributeType?.(),
requiredLevel: attribute.getRequiredLevel?.(),
}));
Xrm.WebApi, keep reads narrow with $select; do not retrieve all columns for large project lists.$select columns:
tpg_projectid,tpg_projectnum,gbl_projectnumber,tpg_subject,tpg_projectstatus,tpg_lifecyclephase,tpg_overallkpi,tpg_progress,tpg_start,tpg_finish,gbl_laststatusupdate,_ownerid_valueProject Manager is exactly Reiner Weisssieker before staging or saving anything.tpg_reportdate: Report Datetpg_project: Projecttpg_title: Status Summaryownerid: Ownertpg_submittedto: Submitted Totpg_emailstatusupdate: Email Status Updatetpg_accomplishedactivities: Accomplished Activities / Current Statustpg_missedactivities: Missed Activitiestpg_plannedactivities: Planned Activities / Next Stepstpg_sponsoractions: Sponsor Actionsgbl_obstaclesandmeasures: Obstacles and Measuresgbl_decisions: Decisionstab_statusstatus_gridAdd New Status UpdateXrm.WebApi.createRecord for Status Update until the status-update entity set and required lookup binding targets are confirmed in the current environment.TPGProjectAssist.createStatusUpdateWithConfirmation(project, draft, options) after metadata discovery, duplicate check, validation, project-manager verification, and exact confirmation-text match.Created, Planning, or In Progress.
tpg_projects with narrow $select columns and statecode eq 0, then open each candidate record by URL.buildBatchProjectPreview(projects, { today }) and show the user the prioritized list with project name, status, KPI, progress, finish date, last status update, severity, and warnings.critical or warning preview items as still processable, but call out that they likely need a real status instead of kv.buildProjectIntelligence(projects, { today }) to produce:
preview: project-leader status queue with delta and quality signalsportfolioRisks: CIO risk list sorted by scoredecisionRadar: CEO/CIO decisions, sponsor actions, and blockerssteeringAgenda: prioritized decision agenda with owner, due date, and evidence reason codesdecisionClosureItems: open decision items for follow-up trackingriskLedger: persistent-ready risk observations with detected/last-seen datesnudges: PMO/project-leader follow-up promptsnudgeDrafts: Teams/Outlook-ready drafts with sendAutomatically: falsecalibrationReport: false-positive and data-quality review inputsliveDynamicsRunPlan: read-only execution plan and safety gatesgovernanceExceptions: PMO governance violations by rule and evidenceprojectManagerCoach: project-leader quality coaching signalsdataCompleteness: reportability score per projectprojectSafetyGates: advisory safety gates that must be shown before status collection or CRM stagingpmoControlTower: PMO governance and portfolio-control routines per projectmaximumUsps: 12 implemented advisory differentiators with proof metrics, runtime signals, trust controls, and USP scorespmoUsps: 15 PMO-operational USPs with command queue, evidence ledger, data gaps, and runtime proof metricsboardPack: Full Board Pack / Steering Pack with executive, PMO, project-leader, evidence, data-gap, and safety sectionslogicValidation: Maximum Logic Assurance checks with assurance level, evidence trace, false-positive risks, data gaps, and recommended actionslogicAssuranceUsps: 12 implemented logic-assurance USPsexecutiveOnePager: Markdown one-pager for leadership reviewbuildGovernanceExceptions flags violated governance rules such as critical projects without management attention or decisions that require SLA tracking.buildRiskTrendIntelligence compares previous and current risk ledgers and classifies new, recurring, and resolved risks.buildMeetingCaptureDrafts converts reviewed meeting notes into decision, risk, action, and status-draft fields. Never write these to CRM without user review.buildPortfolioNarrativeDiff summarizes what changed between two intelligence snapshots for CIO/CEO reporting.buildProjectManagerCoach aggregates quality signals per project owner for PMO coaching.buildWhatIfRecoveryPlan maps evidence codes to recovery actions.buildAudienceReport renders role-specific summaries for project managers, CIOs, and CEOs.buildDataCompletenessScore estimates whether a project is report-ready.buildSafeWritebackSimulation previews field changes, blockers, and confirmations before any CRM save.buildAutonomousPmoWatchtower combines governance exceptions, steering agenda items, and PM nudges into a review-only PMO watchtower.buildRiskForecastTwin projects near-term risk level, confidence, horizon, drivers, and likely impact from evidence codes.buildMeetingToDynamicsPlan converts meeting notes into reviewed Dynamics field drafts plus a safe writeback simulation.buildExecutiveMemoryTimeline turns previous/current intelligence snapshots into an executive change timeline.buildDecisionSlaCockpit aggregates decision closure items by overdue, due today, and upcoming SLA status.buildProjectManagerQualityCoach adds portfolio-level coaching totals and recommended PMO interventions.buildRecoveryOptionGenerator ranks recovery actions per project and marks options that require a decision.buildTrustContract exposes evidence count, data completeness, missing fields, and safety rules for a report.buildSafeWritebackSimulationPro adds risk controls and an audit preview to writeback simulation.buildRoleBasedNarrativeEngine returns audience-specific Markdown plus watchtower, SLA, and forecast sections.buildDecisionDebtAnalysis measures open decision debt, due/overdue decisions, blocked projects, and a decision-debt score.buildProjectTruthScore scores whether project status content is credible against KPI, schedule, closure, and mitigation evidence.buildSponsorActionIntelligence turns steering agenda items into concrete sponsor actions with owner, due date, priority, and evidence.buildNoSurpriseForecast watches all projects for likely escalation and silent risk signals before the next status cycle.buildAiEscalationPack builds a reviewed escalation packet with problem, impact, decision required, options, and evidence codes.buildEvidenceGapDetector identifies missing proof, owners, due dates, and closure evidence.buildExecutiveQuestionGenerator creates CIO/CEO steering questions for critical projects.buildDecisionOptionScoring ranks decision options by risk reduction, time gain, and effort.buildPortfolioConstraintRadar finds shared vendor, dependency, and owner constraints.buildCommitmentTracker extracts sponsor actions and decisions into open commitments.buildRiskNarrativeDrift detects recurring risks that were reworded across snapshots.buildEscalationReadinessScore scores whether an escalation is decision-ready.buildGovernanceReplay shows when warning signals first appeared across intelligence snapshots.buildPmoPolicySimulator evaluates proposed PMO policies against current project data.buildCrossProjectDependencyIntelligence detects shared dependencies with active risk.buildReportQualityBenchmark compares status-report quality across projects.buildHumanConfirmationAnalytics summarizes accepted, edited, and rejected AI suggestions.buildProjectSafetyGate evaluates one project across eight advisory safety domains and returns safety score, level, management attention, writeback risk, evidence, and actions.buildProjectSafetyGateSuite aggregates project safety gates for a portfolio and is included in buildProjectIntelligence.buildPmoProjectControls evaluates one project across 25 PMO routines such as steering readiness, policy compliance, aging, owner accountability, audit completeness, traceability, and intervention recommendation.buildPmoControlTower aggregates PMO project controls and is included in buildProjectIntelligence.buildMaximumUspLayer exposes the 12 Maximum USPs as implemented, advisory-only JSON objects backed by runtime signals and proof metrics.buildPmoUspLayer exposes the 15 PMO USPs as implemented, advisory-only JSON objects backed by command queues, evidence ledgers, data gaps, and proof metrics.buildBoardPack exposes the Full Board Pack / Steering Pack as an advisory management pack backed by live D365 API data or explicit offline fallback snapshots.buildLogicValidationSuite exposes the 15 Maximum Logic Assurance checks and should be shown before status work when management confidence or writeback safety is relevant.buildLogicAssuranceUspLayer exposes the 12 logic-assurance USPs as implemented, advisory-only JSON objects.buildDynamicsProjectRecordUrl(projectId) when the candidate came from DataverseProject Manager = Reiner Weisssieker; otherwise skip the recordkv to the fixed unchanged-status sentencebuildStatusUpdateDraft(statusText, options)buildMonthlyStatusReportDraft(project, statusText, { reportMonth: "YYYY-MM" })Status Update, click New Status Update, and stage the status in the Quick Create dialognot_written.MR Active Projects - RW.40761dc9-c0d4-ef11-a72e-7c1e52862247.Account manager for Reiner Weisssieker.Project ID, Name, Description, Effort, Priority, % Complete, Start Date, Finish Date, Current State, Overall KPI, Owner, Created On, Department, Enterprise Project Type.Owner text in rows is not sufficient for filtering. The assistant must open the record and read the header Project Manager.Created, Planning, and In Progress. Skip Closed, Declined, and any unrecognized non-active state.MR Active Projects - RW, the visible grid already contained only active In Progress rows for Reiner Weisssieker; still verify the opened record header before writing.MDE Integration Schritt 1
https://posp365.crm4.dynamics.com/main.aspx?appid=1a66513c-266c-ef11-bfe2-6045bd8d5d87&forceUCI=1&pagetype=entityrecord&etn=tpg_project&id=76aff425-d70e-4e29-9eba-db265d904fb9Status Update tab -> New Status Update -> Quick Create: Status Update.Report DateProjectStatus SummaryOwnerSubmitted ToEmail Status UpdateAccomplished Activities / Current StatusMissed ActivitiesPlanned Activities / Next StepsSponsor ActionsObstacles and MeasuresDecisionsStatus Summary.Report Date to the last day of the report month unless the user provides another date.Accomplished Activities / Current Status unless the user provides a more structured status split.kv, use exactly this fixed German CRM status phrase:
Status unverändert seit letztem Bericht (keine inhaltlichen Änderungen)Submitted To; if Dynamics requires it and no default is present, ask the user before saving.Email Status Update was observed as default Yes. Treat this as a separate risky action:
No before save, orkv, unsupported claims, decision SLA gaps, and writeback negative findings.kv_blocked as a warning, not a hard stop: the project leader may still choose kv, but the report must show the evidence codes that made it risky.red_kpi, overdue_finish, high_progress_not_closed, missing_mitigation, missing_next_step, and stale_status must remain visible in management summaries where possible.buildAuditEntry(input) when the run produces a report or handoff summary.Project Manager is not Reiner Weisssieker.Save and Close in Quick Create: Status Update until the user explicitly confirms the exact project, status text, and email setting.