style: format all files with prettier

This commit is contained in:
Seth Hobson
2026-01-19 17:07:03 -05:00
parent 8d37048deb
commit 56848874a2
355 changed files with 15215 additions and 10241 deletions

View File

@@ -15,6 +15,7 @@ GitHub Issue ID or URL: $ARGUMENTS
### 1. Issue Analysis and Triage
**Initial Investigation**
```bash
# Get complete issue details
gh issue view $ISSUE_NUMBER --comments
@@ -27,6 +28,7 @@ gh issue view $ISSUE_NUMBER --json linkedBranches,closedByPullRequests
```
**Triage Assessment Framework**
- **Priority Classification**:
- P0/Critical: Production breaking, security vulnerability, data loss
- P1/High: Major feature broken, significant user impact
@@ -34,6 +36,7 @@ gh issue view $ISSUE_NUMBER --json linkedBranches,closedByPullRequests
- P3/Low: Cosmetic issue, enhancement request
**Context Gathering**
```bash
# Search for similar resolved issues
gh issue list --search "similar keywords" --state closed --limit 10
@@ -48,6 +51,7 @@ gh pr list --search "related_component" --state merged --limit 5
### 2. Investigation and Root Cause Analysis
**Code Archaeology**
```bash
# Find when the issue was introduced
git bisect start
@@ -62,6 +66,7 @@ git blame -L <start>,<end> path/to/file.js
```
**Codebase Investigation**
```bash
# Search for all occurrences of problematic function
rg "functionName" --type js -A 3 -B 3
@@ -74,18 +79,21 @@ grep -r "methodName(" . --include="*.py" | head -20
```
**Dependency Analysis**
```javascript
// Check for version conflicts
const checkDependencies = () => {
const package = require('./package.json');
const lockfile = require('./package-lock.json');
const package = require("./package.json");
const lockfile = require("./package-lock.json");
Object.keys(package.dependencies).forEach(dep => {
Object.keys(package.dependencies).forEach((dep) => {
const specVersion = package.dependencies[dep];
const lockVersion = lockfile.dependencies[dep]?.version;
if (lockVersion && !satisfies(lockVersion, specVersion)) {
console.warn(`Version mismatch: ${dep} - spec: ${specVersion}, lock: ${lockVersion}`);
console.warn(
`Version mismatch: ${dep} - spec: ${specVersion}, lock: ${lockVersion}`,
);
}
});
};
@@ -94,6 +102,7 @@ const checkDependencies = () => {
### 3. Branch Strategy and Setup
**Branch Naming Conventions**
```bash
# Feature branches
git checkout -b feature/issue-${ISSUE_NUMBER}-short-description
@@ -109,6 +118,7 @@ git checkout -b spike/issue-${ISSUE_NUMBER}-investigation
```
**Branch Configuration**
```bash
# Set upstream tracking
git push -u origin feature/issue-${ISSUE_NUMBER}-feature-name
@@ -123,28 +133,33 @@ gh issue develop ${ISSUE_NUMBER} --checkout
### 4. Implementation Planning and Task Breakdown
**Task Decomposition Framework**
```markdown
## Implementation Plan for Issue #${ISSUE_NUMBER}
### Phase 1: Foundation (Day 1)
- [ ] Set up development environment
- [ ] Create failing test cases
- [ ] Implement data models/schemas
- [ ] Add necessary migrations
### Phase 2: Core Logic (Day 2)
- [ ] Implement business logic
- [ ] Add validation layers
- [ ] Handle edge cases
- [ ] Add logging and monitoring
### Phase 3: Integration (Day 3)
- [ ] Wire up API endpoints
- [ ] Update frontend components
- [ ] Add error handling
- [ ] Implement retry logic
### Phase 4: Testing & Polish (Day 4)
- [ ] Complete unit test coverage
- [ ] Add integration tests
- [ ] Performance optimization
@@ -152,6 +167,7 @@ gh issue develop ${ISSUE_NUMBER} --checkout
```
**Incremental Commit Strategy**
```bash
# After each subtask completion
git add -p # Partial staging for atomic commits
@@ -163,9 +179,10 @@ git commit -m "docs(auth): update API documentation (#${ISSUE_NUMBER})"
### 5. Test-Driven Development
**Unit Test Implementation**
```javascript
// Jest example for bug fix
describe('Issue #123: User authentication', () => {
describe("Issue #123: User authentication", () => {
let authService;
beforeEach(() => {
@@ -173,7 +190,7 @@ describe('Issue #123: User authentication', () => {
jest.clearAllMocks();
});
test('should handle expired tokens gracefully', async () => {
test("should handle expired tokens gracefully", async () => {
// Arrange
const expiredToken = generateExpiredToken();
@@ -182,20 +199,21 @@ describe('Issue #123: User authentication', () => {
// Assert
expect(result.valid).toBe(false);
expect(result.error).toBe('TOKEN_EXPIRED');
expect(mockLogger.warn).toHaveBeenCalledWith('Token validation failed', {
reason: 'expired',
tokenId: expect.any(String)
expect(result.error).toBe("TOKEN_EXPIRED");
expect(mockLogger.warn).toHaveBeenCalledWith("Token validation failed", {
reason: "expired",
tokenId: expect.any(String),
});
});
test('should refresh token automatically when near expiry', async () => {
test("should refresh token automatically when near expiry", async () => {
// Test implementation
});
});
```
**Integration Test Pattern**
```python
# Pytest integration test
import pytest
@@ -235,27 +253,28 @@ class TestIssue123Integration:
```
**End-to-End Testing**
```typescript
// Playwright E2E test
import { test, expect } from '@playwright/test';
import { test, expect } from "@playwright/test";
test.describe('Issue #123: Authentication Flow', () => {
test('user can complete full authentication cycle', async ({ page }) => {
test.describe("Issue #123: Authentication Flow", () => {
test("user can complete full authentication cycle", async ({ page }) => {
// Navigate to login
await page.goto('/login');
await page.goto("/login");
// Fill credentials
await page.fill('[data-testid="email-input"]', 'user@example.com');
await page.fill('[data-testid="password-input"]', 'password123');
await page.fill('[data-testid="email-input"]', "user@example.com");
await page.fill('[data-testid="password-input"]', "password123");
// Submit and wait for navigation
await Promise.all([
page.waitForNavigation(),
page.click('[data-testid="login-button"]')
page.click('[data-testid="login-button"]'),
]);
// Verify successful login
await expect(page).toHaveURL('/dashboard');
await expect(page).toHaveURL("/dashboard");
await expect(page.locator('[data-testid="user-menu"]')).toBeVisible();
});
});
@@ -264,6 +283,7 @@ test.describe('Issue #123: Authentication Flow', () => {
### 6. Code Implementation Patterns
**Bug Fix Pattern**
```javascript
// Before (buggy code)
function calculateDiscount(price, discountPercent) {
@@ -273,14 +293,16 @@ function calculateDiscount(price, discountPercent) {
// After (fixed code with validation)
function calculateDiscount(price, discountPercent) {
// Validate inputs
if (typeof price !== 'number' || price < 0) {
throw new Error('Invalid price');
if (typeof price !== "number" || price < 0) {
throw new Error("Invalid price");
}
if (typeof discountPercent !== 'number' ||
discountPercent < 0 ||
discountPercent > 100) {
throw new Error('Invalid discount percentage');
if (
typeof discountPercent !== "number" ||
discountPercent < 0 ||
discountPercent > 100
) {
throw new Error("Invalid discount percentage");
}
// Fix: Properly calculate discount
@@ -292,6 +314,7 @@ function calculateDiscount(price, discountPercent) {
```
**Feature Implementation Pattern**
```python
# Implementing new feature with proper architecture
from typing import Optional, List
@@ -348,6 +371,7 @@ class IssueFeatureService:
### 7. Pull Request Creation
**PR Preparation Checklist**
```bash
# Run all tests locally
npm test -- --coverage
@@ -365,6 +389,7 @@ npm run docs:generate
```
**PR Creation with GitHub CLI**
```bash
# Create PR with comprehensive description
gh pr create \
@@ -408,6 +433,7 @@ EOF
```
**Link PR to Issue Automatically**
```yaml
# .github/pull_request_template.md
---
@@ -440,6 +466,7 @@ Closes #___
### 8. Post-Implementation Verification
**Deployment Verification**
```bash
# Check deployment status
gh run list --workflow=deploy
@@ -456,6 +483,7 @@ gh api /repos/org/repo/issues/${ISSUE_NUMBER}/comments \
```
**Issue Closure Protocol**
```bash
# Add resolution comment
gh issue comment ${ISSUE_NUMBER} \
@@ -473,6 +501,7 @@ gh issue close ${ISSUE_NUMBER} \
**Purpose**: Fix authentication failure affecting all users
**Investigation and Implementation**:
```bash
# 1. Immediate triage
gh issue view 456 --comments
@@ -509,6 +538,7 @@ gh pr create --title "Hotfix #456: Fix token validation logic" \
**Purpose**: Implement user profile customization feature
**Complete Implementation**:
```python
# Task breakdown in issue comment
"""
@@ -564,6 +594,7 @@ def test_profile_update():
**Purpose**: Resolve slow query performance issue
**Investigation Workflow**:
```sql
-- 1. Identify slow query from issue report
EXPLAIN ANALYZE
@@ -598,16 +629,19 @@ class UserService {
// }
// New: Single optimized query
const result = await sequelize.query(`
const result = await sequelize.query(
`
SELECT u.*, COUNT(o.id) as order_count
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
WHERE u.created_at > :since
GROUP BY u.id
`, {
replacements: { since },
type: QueryTypes.SELECT
});
`,
{
replacements: { since },
type: QueryTypes.SELECT,
},
);
return result;
}
@@ -628,9 +662,10 @@ Upon successful issue resolution, deliver:
8. **Rollback Plan**: Steps to revert if issues arise post-deployment
Success Criteria:
- Issue thoroughly investigated with root cause identified
- Fix implemented with comprehensive test coverage
- Pull request created following team standards
- All CI/CD checks passing
- Issue properly closed with reference to PR
- Knowledge captured for future reference
- Knowledge captured for future reference

View File

@@ -9,10 +9,12 @@ Modern remote-first teams rely on async standup notes to maintain visibility, co
## Requirements
**Arguments:** `$ARGUMENTS` (optional)
- If provided: Use as context about specific work areas, projects, or tickets to highlight
- If empty: Automatically discover work from all available sources
**Required MCP Integrations:**
- `mcp-obsidian`: Vault access for daily notes and project updates
- `atlassian`: Jira ticket queries (graceful fallback if unavailable)
- Optional: Calendar integrations for meeting context
@@ -20,12 +22,14 @@ Modern remote-first teams rely on async standup notes to maintain visibility, co
## Data Source Orchestration
**Primary Sources:**
1. **Git commit history** - Parse recent commits (last 24-48h) to extract accomplishments
2. **Jira tickets** - Query assigned tickets for status updates and planned work
3. **Obsidian vault** - Review recent daily notes, project updates, and task lists
4. **Calendar events** - Include meeting context and time commitments
**Collection Strategy:**
```
1. Get current user context (Jira username, Git author)
2. Fetch recent Git commits:
@@ -45,22 +49,26 @@ Modern remote-first teams rely on async standup notes to maintain visibility, co
## Standup Note Structure
**Standard Format:**
```markdown
# Standup - YYYY-MM-DD
## Yesterday / Last Update
• [Completed task 1] - [Jira ticket link if applicable]
• [Shipped feature/fix] - [Link to PR or deployment]
• [Meeting outcomes or decisions made]
• [Progress on ongoing work] - [Percentage complete or milestone reached]
## Today / Next
• [Continue work on X] - [Jira ticket] - [Expected completion: end of day]
• [Start new feature Y] - [Jira ticket] - [Goal: complete design phase]
• [Code review for Z] - [PR link]
• [Meetings: Team sync 2pm, Design review 4pm]
## Blockers / Notes
• [Blocker description] - **Needs:** [Specific help needed] - **From:** [Person/team]
• [Dependency or waiting on] - **ETA:** [Expected resolution date]
• [Important context or risk] - [Impact if not addressed]
@@ -70,6 +78,7 @@ Modern remote-first teams rely on async standup notes to maintain visibility, co
```
**Formatting Guidelines:**
- Use bullet points for scanability
- Include links to tickets, PRs, docs for quick navigation
- Bold blockers and key information
@@ -80,6 +89,7 @@ Modern remote-first teams rely on async standup notes to maintain visibility, co
## Yesterday's Accomplishments Extraction
**AI-Assisted Commit Analysis:**
```
For each commit in the last 24-48 hours:
1. Extract commit message and parse for:
@@ -101,6 +111,7 @@ For each commit in the last 24-48 hours:
```
**Obsidian Task Completion Parsing:**
```
Search vault for completed tasks (last 24-48h):
- Pattern: `- [x] Task description` with recent modification date
@@ -110,6 +121,7 @@ Search vault for completed tasks (last 24-48h):
```
**Accomplishment Quality Criteria:**
- Focus on delivered value, not just activity ("Shipped user auth" vs "Worked on auth")
- Include impact when known ("Fixed bug affecting 20% of users")
- Connect to team goals or sprint objectives
@@ -118,6 +130,7 @@ Search vault for completed tasks (last 24-48h):
## Today's Plans and Priorities
**Priority-Based Planning:**
```
1. Urgent blockers for others (unblock teammates first)
2. Sprint/iteration commitments (tickets in current sprint)
@@ -128,12 +141,14 @@ Search vault for completed tasks (last 24-48h):
```
**Capacity-Aware Planning:**
- Calculate available hours (8h - meetings - expected interruptions)
- Flag overcommitment if planned work exceeds capacity
- Include time for code reviews, testing, deployment tasks
- Note partial day availability (half-day due to appointments, etc.)
**Clear Outcomes:**
- Define success criteria for each task ("Complete API integration" vs "Work on API")
- Include ticket status transitions expected ("Move JIRA-123 to Code Review")
- Set realistic completion targets ("Finish by EOD" or "Rough draft by lunch")
@@ -143,33 +158,40 @@ Search vault for completed tasks (last 24-48h):
**Blocker Categorization:**
**Hard Blockers (work completely stopped):**
- Waiting on external API access or credentials
- Blocked by failed CI/CD or infrastructure issues
- Dependent on another team's incomplete work
- Missing requirements or design decisions
**Soft Blockers (work slowed but not stopped):**
- Need clarification on requirements (can proceed with assumptions)
- Waiting on code review (can start next task)
- Performance issues impacting development workflow
- Missing nice-to-have resources or tools
**Blocker Escalation Format:**
```markdown
## Blockers
**[CRITICAL]** [Description] - Blocked since [date]
- **Impact:** [What work is stopped, team/customer impact]
- **Need:** [Specific action required]
- **From:** [@person or @team]
- **Tried:** [What you've already attempted]
- **Next step:** [What will happen if not resolved by X date]
- **Impact:** [What work is stopped, team/customer impact]
- **Need:** [Specific action required]
- **From:** [@person or @team]
- **Tried:** [What you've already attempted]
- **Next step:** [What will happen if not resolved by X date]
**[NORMAL]** [Description] - [When it became a blocker]
- **Need:** [What would unblock]
- **Workaround:** [Current alternative approach if any]
- **Need:** [What would unblock]
- **Workaround:** [Current alternative approach if any]
```
**Dependency Tracking:**
- Call out cross-team dependencies explicitly
- Include expected delivery dates for dependent work
- Tag relevant stakeholders with @mentions
@@ -178,6 +200,7 @@ Search vault for completed tasks (last 24-48h):
## AI-Assisted Note Generation
**Automated Generation Workflow:**
```bash
# Generate standup notes from Git commits (last 24h)
git log --author="$(git config user.name)" --since="24 hours ago" \
@@ -198,6 +221,7 @@ obsidian_get_recent_periodic_notes --period daily --limit 2 | \
```
**AI Summarization Techniques:**
- Group related commits/tasks under single accomplishment bullets
- Translate technical commit messages to business value statements
- Identify patterns across multiple changes (e.g., "Refactored auth module" from 5 commits)
@@ -205,6 +229,7 @@ obsidian_get_recent_periodic_notes --period daily --limit 2 | \
- Flag potential blockers or risks from context clues
**Manual Override:**
- Always review AI-generated content for accuracy
- Add personal context AI cannot infer (conversations, planning thoughts)
- Adjust priorities based on team needs or changed circumstances
@@ -213,6 +238,7 @@ obsidian_get_recent_periodic_notes --period daily --limit 2 | \
## Communication Best Practices
**Async-First Principles:**
- Post standup notes at consistent time daily (e.g., 9am local time)
- Don't wait for synchronous standup meeting to share updates
- Include enough context for readers in different timezones
@@ -220,6 +246,7 @@ obsidian_get_recent_periodic_notes --period daily --limit 2 | \
- Make blockers actionable (specific requests, not vague concerns)
**Visibility and Transparency:**
- Share wins and progress, not just problems
- Be honest about challenges and timeline concerns early
- Call out dependencies proactively before they become blockers
@@ -227,6 +254,7 @@ obsidian_get_recent_periodic_notes --period daily --limit 2 | \
- Include learning moments or process improvements
**Team Coordination:**
- Read teammates' standup notes before posting yours (adjust plans accordingly)
- Offer help when you see blockers you can resolve
- Tag people when their input or action is needed
@@ -234,6 +262,7 @@ obsidian_get_recent_periodic_notes --period daily --limit 2 | \
- Update throughout day if priorities shift significantly
**Writing Style:**
- Use active voice and clear action verbs
- Avoid ambiguous terms ("soon", "later", "eventually")
- Be specific about timeline and scope
@@ -243,41 +272,49 @@ obsidian_get_recent_periodic_notes --period daily --limit 2 | \
## Async Standup Patterns
**Written-Only Standup (No Sync Meeting):**
```markdown
# Post daily in #standup-team-name Slack channel
**Posted:** 9:00 AM PT | **Read time:** ~2min
## ✅ Yesterday
• Shipped user profile API endpoints (JIRA-234) - Live in staging
• Fixed critical bug in payment flow - PR merged, deploying at 2pm
• Reviewed PRs from @teammate1 and @teammate2
## 🎯 Today
• Migrate user database to new schema (JIRA-456) - Target: EOD
• Pair with @teammate3 on webhook integration - 11am session
• Write deployment runbook for profile API
## 🚧 Blockers
• Need staging database access for migration testing - @infra-team
## 📎 Links
• [PR #789](link) | [JIRA Sprint Board](link)
```
**Thread-Based Standup:**
- Post standup as Slack thread parent message
- Teammates reply in thread with questions or offers to help
- Keep discussion contained, surface key decisions to channel
- Use emoji reactions for quick acknowledgment (👀 = read, ✅ = noted, 🤝 = I can help)
**Video Async Standup:**
- Record 2-3 minute Loom video walking through work
- Post video link with text summary (for skimmers)
- Useful for demoing UI work, explaining complex technical issues
- Include automatic transcript for accessibility
**Rolling 24-Hour Standup:**
- Post update anytime within 24h window
- Mark as "posted" when shared (use emoji status)
- Accommodates distributed teams across timezones
@@ -286,6 +323,7 @@ obsidian_get_recent_periodic_notes --period daily --limit 2 | \
## Follow-Up Tracking
**Action Item Extraction:**
```
From standup notes, automatically extract:
1. Blockers requiring follow-up → Create reminder tasks
@@ -295,12 +333,14 @@ From standup notes, automatically extract:
```
**Progress Tracking Over Time:**
- Link today's "Yesterday" section to previous day's "Today" plan
- Flag items that remain in "Today" for 3+ days (potential stuck work)
- Celebrate completed multi-day efforts when finally done
- Review weekly to identify recurring blockers or process improvements
**Retrospective Data:**
- Monthly review of standup notes reveals patterns:
- How often are estimates accurate?
- Which types of blockers are most common?
@@ -309,8 +349,10 @@ From standup notes, automatically extract:
- Use insights for sprint planning and capacity estimation
**Integration with Task Systems:**
```markdown
## Follow-Up Tasks (Auto-generated from standup)
- [ ] Follow up with @infra-team on staging access (from blocker) - Due: Today EOD
- [ ] Review PR #789 feedback from @teammate (from yesterday's post) - Due: Tomorrow
- [ ] Document deployment process (from today's plan) - Due: End of week
@@ -325,12 +367,14 @@ From standup notes, automatically extract:
# Standup - 2025-10-11
## Yesterday
**Completed JIRA-892:** User authentication with OAuth2 - PR #445 merged and deployed to staging
**Fixed prod bug:** Payment retry logic wasn't handling timeouts - Hotfix deployed, monitoring for 24h
**Code review:** Reviewed 3 PRs from @sarah and @mike - All approved with minor feedback
**Meeting outcomes:** Design sync on Q4 roadmap - Agreed to prioritize mobile responsiveness
## Today
**Continue JIRA-903:** Implement user profile edit flow - Target: Complete API integration by EOD
**Deploy:** Roll out auth changes to production during 2pm deploy window
**Pairing:** Work with @chris on webhook error handling - 11am-12pm session
@@ -338,12 +382,15 @@ From standup notes, automatically extract:
**Code review:** Review @sarah's notification service refactor (PR #451)
## Blockers
**Need:** QA environment refresh for profile testing - Database is 2 weeks stale
- **From:** @qa-team or @devops
- **Impact:** Can't test full user flow until refreshed
- **Workaround:** Testing with mock data for now, but need real data before production
- **From:** @qa-team or @devops
- **Impact:** Can't test full user flow until refreshed
- **Workaround:** Testing with mock data for now, but need real data before production
## Notes
• Taking tomorrow afternoon off (dentist appointment) - Will post morning standup but limited availability after 12pm
• Mobile responsiveness research doc started: [Link to Notion doc]
@@ -356,32 +403,39 @@ From standup notes, automatically extract:
# Standup - 2025-10-11 (Auto-generated from Git commits)
## Yesterday (12 commits analyzed)
**Feature work:** Implemented caching layer for API responses
- Added Redis integration (3 commits)
- Implemented cache invalidation logic (2 commits)
- Added monitoring for cache hit rates (1 commit)
- *Related tickets:* JIRA-567, JIRA-568
- Added Redis integration (3 commits)
- Implemented cache invalidation logic (2 commits)
- Added monitoring for cache hit rates (1 commit)
- _Related tickets:_ JIRA-567, JIRA-568
**Bug fixes:** Resolved 3 production issues
- Fixed null pointer exception in user service (JIRA-601)
- Corrected timezone handling in reports (JIRA-615)
- Patched memory leak in background job processor (JIRA-622)
- Fixed null pointer exception in user service (JIRA-601)
- Corrected timezone handling in reports (JIRA-615)
- Patched memory leak in background job processor (JIRA-622)
**Maintenance:** Updated dependencies and improved testing
- Upgraded Node.js to v20 LTS (2 commits)
- Added integration tests for payment flow (2 commits)
- Refactored error handling in API gateway (1 commit)
- Upgraded Node.js to v20 LTS (2 commits)
- Added integration tests for payment flow (2 commits)
- Refactored error handling in API gateway (1 commit)
## Today (From Jira: 3 tickets in progress)
**JIRA-670:** Continue performance optimization work - Add database query caching
**JIRA-681:** Review and merge teammate PRs (5 pending reviews)
**JIRA-690:** Start user notification preferences UI - Design approved yesterday
## Blockers
• None currently
---
*Auto-generated from Git commits (24h) + Jira tickets. Reviewed and approved by human.*
_Auto-generated from Git commits (24h) + Jira tickets. Reviewed and approved by human._
```
### Example 3: Async Standup Template (Slack/Discord)
@@ -402,13 +456,15 @@ From standup notes, automatically extract:
**🚧 Blockers**
• ⚠️ Need @product approval on permissions UX before I can finish JIRA-501
- I've posted in #product-questions, following up in standup if no response by 11am
- I've posted in #product-questions, following up in standup if no response by 11am
**📅 Schedule notes**
• OOO 2-3pm for doctor appointment
• Available for pairing this afternoon if anyone needs help!
---
React with 👀 when read | Reply in thread with questions
```
@@ -418,11 +474,13 @@ React with 👀 when read | Reply in thread with questions
# Standup - 2025-10-11
## Yesterday
• Continued work on data migration pipeline (JIRA-777)
• Investigated blocker with database permissions (see below)
• Updated migration runbook with new error handling
## Today
**BLOCKED:** Cannot progress on JIRA-777 until permissions resolved
• Will pivot to JIRA-802 (refactor user service) as backup work
• Review PRs and help unblock teammates
@@ -432,27 +490,32 @@ React with 👀 when read | Reply in thread with questions
**Issue:** Production database read access for migration dry-run
**Blocked since:** Tuesday (3 days)
**Impact:**
- Cannot test migration on real data before production cutover
- Risk of data loss if migration fails in production
- Blocking sprint goal (migration scheduled for Monday)
**What I need:**
- Read-only credentials for production database replica
- Alternative: Sanitized production data dump in staging
**From:** @database-team (pinged @john and @maria)
**What I've tried:**
- Submitted access request via IT portal (Ticket #12345) - No response
- Asked in #database-help channel - Referred to IT portal
- DM'd @john yesterday - Said he'd check today
**Escalation:**
- If not resolved by EOD today, will need to reschedule Monday migration
- Requesting manager (@sarah) to escalate to database team lead
- Backup plan: Proceed with staging data only (higher risk)
**Next steps:**
- Following up with @john at 10am
- Will update this thread when resolved
- If unblocked, can complete testing over weekend to stay on schedule
@@ -526,6 +589,7 @@ jira issues list --assignee currentUser() --status "In Progress"
• [Active PRs](link) | [Sprint Board](link) | [Migration Runbook](link)
---
👀 = I've read this | 🤝 = I can help with something | 💬 = Reply in thread
```
@@ -533,16 +597,21 @@ jira issues list --assignee currentUser() --status "In Progress"
```markdown
# 11:00 AM - Check thread responses
Thread from @eve:
> "Can you review my DB schema changes PR before your migration? Want to make sure no conflicts"
Response:
> "Absolutely! I'll review by 1pm so you have feedback before sprint planning. Link?"
# 3:00 PM - Progress update in thread
> "✅ Update: Migration script complete and tested in staging. Dry-run successful, ready for prod deployment tomorrow. PR #892 up for review."
# EOD - Tomorrow's setup
Add to tomorrow's "Today" section:
• Deploy database migration to production (scheduled 9am maintenance window)
• Monitor migration + rollback plan ready
@@ -553,6 +622,7 @@ Add to tomorrow's "Today" section:
```markdown
# Review week of standup notes
Patterns observed:
• ✅ Completed all 5 sprint stories
• ⚠️ Database blocker cost 1.5 days - need faster SRE response process