Files
solution-erp/.gitignore
pqhuy1987 e33481efb6
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 4m57s
[CLAUDE] PurchaseEvaluation: Mig 56 ngan sach MA TRAN 3 cot (Du an|PRO|CCM) + badge quyen NS theo role
S76 (anh Kiet FDC + chi Tra Sol) — form ngan sach + hien thi quyen nhap NS trong flow:
- Part 1: form ngan sach -> MA TRAN 3 cot, moi phong nhap+dieu chinh cot minh
  (PRO canEditPro / CCM canEditCcm / Du an FE hien-thi-only). Mig 56
  +ProInitialAmount/ProAdjustmentAmount (additive-nullable + data-migrate
  ProEstimate->ProInitial). full moi cot = ban hanh + hieu chinh.
- Part 2: Workflow Designer (fe-admin) +badge "NS PRO/CCM" canh approver
  (suy tu role Admin|Procurement / Admin|CostControl, hien-thi-only no-authz).
- Part 3: flow quy trinh fe-user/fe-admin (Duyet NCC) +badge tuong tu.
- Fix race mat-du-lieu Part 1 (useIsFetching khoa Luu khi refetch — dong
  cua-so stale-echo, reviewer Part2/3 bat).
- Test 339->344 (+5). 2 workflow review (Part 1 PASS + Part 2/3 PASS).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 11:02:47 +07:00

114 lines
3.7 KiB
Plaintext

# =============================================================
# .NET
# =============================================================
bin/
obj/
out/
*.user
*.suo
*.ide/
*.VisualState.xml
*.pidb
*.booproj
*.svd
*.pdb
*.mdb
.vs/
project.lock.json
project.fragment.lock.json
artifacts/
# EF Core migrations scratch
src/**/Migrations/*.Designer.cs.bak
# =============================================================
# Node / React / Vite
# =============================================================
node_modules/
dist/
dist-ssr/
.vite/
*.local
coverage/
.eslintcache
# =============================================================
# Logs
# =============================================================
logs/
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
# =============================================================
# Editor / OS
# =============================================================
.idea/
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
Thumbs.db
desktop.ini
.DS_Store
# =============================================================
# Secrets / env
# =============================================================
appsettings.*.Local.json
appsettings.Production.json
*.env
.env.local
.env.*.local
src/Backend/SolutionErp.Api/.env
# Local MCP config — rag-unified stdio, machine-specific absolute paths
# (python + AI_INFRA claude-rag), no secrets, reconstructable → not shared
.mcp.json
# =============================================================
# Build artifacts / uploads
# =============================================================
src/Backend/SolutionErp.Api/wwwroot/uploads/
src/Backend/SolutionErp.Api/wwwroot/exports/
# =============================================================
# Claude / skills (keep tracked — these ARE source of truth)
# =============================================================
# .claude/ ← DO NOT ignore, skills are committed
!.claude/
!.claude/**
# HMW-mode marker — session-local toggle (T2: MUST gitignore — commit → clone stuck-ON / ungoverned on-ramp).
# Pattern AFTER !.claude/** so last-match wins (.claude/ itself not excluded → re-include valid).
.claude/hmw-mode.on
# HMW run-trace folders — Harness-10 (2026-06-18): `.claude/workflows/runs/<run-id>/` is git-TRACKED
# (run.md + sub-md/ + harvest/ + _ledger.md) for auditability. Stays tracked via the !.claude/** negation
# above — do NOT add an ignore rule for runs/. Containment model shifts from Harness-2 B6 ("wave-*/ gitignored
# → any tracked-change post-workflow = stray-write") to Harness-10 ("tracked-change OUTSIDE runs/<run-id>/ +
# assigned code-disjoint = violation"). Run-trace now VISIBLE in git-diff = direct audit (stronger).
#
# Legacy Harness-2 wave-folder + agent-team — kept ignored (superseded by runs/; no wave-*/ remain; harmless).
# Pattern AFTER !.claude/** so last-match wins (giống hmw-mode.on).
# ⚠️ check-ignore verify (exit-code nuance): plain `git check-ignore X` exits 1 for a negation/re-included path
# (NOT 0); only `git check-ignore -v --no-index` shows exit 0 for BOTH. Use the idiom for a correct verdict:
# `git check-ignore X && echo IGNORED || echo NOT-IGNORED` → runs/ = NOT-IGNORED (tracked); wave-x/ = IGNORED.
.claude/workflows/wave-*/
.claude/agent-teams/
# Claude harness orphan dumps
*.zip
# Sub-agent output dumps (JSON/HTML scratch)
tmp/
# [S76] Guard cwd-misland (feedback_agent_cwd_relative_memory_misland): sub-agent `cd`
# vào fe-user/fe-admin chạy npm build rồi ghi MEMORY.md relative-path → stray
# `fe-*/.claude/agent-memory/...`. Canonical agent-memory ở ROOT `.claude/` vẫn tracked
# (negation `!.claude/**` trên). Pattern AFTER negation → last-match-wins cho path FE-app.
fe-*/.claude/