system-prompts-and-models-o.../salesflow-saas/.github/workflows/repo-hygiene.yml
Claude 84762f08ab
Add complete launch infrastructure: models, APIs, agents, compliance, docs, knowledge base
Phase 1 - Repo Hardening:
- README.md, LICENSE, SECURITY.md, CONTRIBUTING.md
- GitHub Actions repo-hygiene workflow
- docs/: ARCHITECTURE, DATA-MODEL, API-MAP, AGENT-MAP, DEPLOYMENT-NOTES

Phase 2 - Database Models (7 new):
- Company, Contact, Call, Commission, Payout, Dispute, GuaranteeClaim
- Consent, Complaint, Policy, KnowledgeArticle, SectorAsset
- Updated models/__init__.py with all 32+ models

Phase 3 - API Surfaces (16 new route files):
- companies, contacts, calls, meetings, commissions, payouts
- disputes, guarantees, consents, complaints, knowledge
- sectors, presentations, supervisor, admin, health
- Updated router.py with all 24 route groups

Phase 4 - AI Prompt Registry (18 agent contracts):
- Lead Qualification, Affiliate Recruitment Evaluator, Onboarding Coach
- Outreach Writer, Arabic WhatsApp, English Conversation, Voice Call
- Meeting Booking, Sector Strategist, Objection Handler
- Proposal Drafter, QA Reviewer, Compliance Reviewer
- Knowledge Retrieval, Revenue Attribution, Fraud Reviewer
- Guarantee Claim Reviewer, Management Summary

Phase 5 - Communication Templates:
- 15 production templates (WhatsApp, email, voice, internal)
- Arabic + English variants with variable interpolation

Phase 6 - Compliance Center (7 legal docs):
- Privacy policy, Terms of service, Refund policy
- Commission policy, Affiliate rules, Consent policy, Data protection
- All PDPL-compliant, Arabic

Phase 7 - Celery Workers (fully implemented):
- follow_up_tasks: automated lead follow-ups with workflow execution
- message_tasks: WhatsApp/email/SMS with retry logic
- notification_tasks: daily reports, meeting reminders, in-app notifications
- affiliate_tasks: target checking, commission calculation, weekly reports, AI outreach

Phase 8 - Knowledge Base OS (8 files):
- Services overview, Pricing policy, Channel policy, Meeting policy
- Identity rules, Escalation rules, Hiring path, Internal SOPs

https://claude.ai/code/session_01KnJgK7RwyeCvRZTRThHtfU
2026-03-31 07:57:48 +00:00

80 lines
2.3 KiB
YAML

name: Repo Hygiene
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
check-key-files:
name: Verify required files exist
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check key files
run: |
missing=0
for f in README.md LICENSE SECURITY.md CONTRIBUTING.md docker-compose.yml; do
if [ ! -f "$f" ]; then
echo "MISSING: $f"
missing=1
else
echo "OK: $f"
fi
done
if [ "$missing" -eq 1 ]; then
echo "::error::One or more required files are missing."
exit 1
fi
block-secrets-files:
name: Block .env / .pem / .key files
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Scan for forbidden file extensions
run: |
forbidden=$(git ls-files | grep -E '\.(env|pem|key|crt|p12|pfx)$' | grep -v '\.env\.example' || true)
if [ -n "$forbidden" ]; then
echo "::error::Forbidden files detected in tracked files:"
echo "$forbidden"
exit 1
fi
echo "No forbidden files found."
block-secret-patterns:
name: Block secret patterns in tracked files
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Scan for secret patterns
run: |
patterns=(
'PRIVATE KEY'
'sk-[a-zA-Z0-9]{20,}'
'ghp_[a-zA-Z0-9]{36}'
'password\s*=\s*["\x27][^"\x27]{4,}'
'DATABASE_URL=postgres'
'REDIS_URL=redis://'
'SECRET_KEY=["\x27][^"\x27]{8,}'
'API_KEY=["\x27][^"\x27]{8,}'
)
found=0
for pattern in "${patterns[@]}"; do
matches=$(git ls-files -z | xargs -0 grep -rlE "$pattern" -- 2>/dev/null | grep -v '\.example$' | grep -v 'repo-hygiene\.yml' || true)
if [ -n "$matches" ]; then
echo "::warning::Pattern '$pattern' found in:"
echo "$matches"
found=1
fi
done
if [ "$found" -eq 1 ]; then
echo "::error::Potential secrets detected in tracked files. Review the warnings above."
exit 1
fi
echo "No secret patterns found."