- reason:
- confidence: <0-1>
- alternatives: <2-3 alternatives>
""")
```
### Reversible action
```typescript
class UndoStack {
private stack: Action[] = [];
do(action: Action) {
action.execute();
this.stack.push(action);
}
undo() {
const last = this.stack.pop();
last?.reverse();
}
}
```
### AI disclosure (transparency)
```html
{output}
Generated with AI. Verify before using.
```
### Audit log
```python
def log_ai_decision(input, output, model_version, user_decision):
db.audit.insert({
'timestamp': now(),
'user_id': current_user.id,
'model': model_version,
'input_hash': hash(input),
'output': output,
'user_action': user_decision, # 매 accepted | modified | rejected
})
```
### Graceful degradation
```python
def feature_with_ai_fallback(input):
try:
return ai_enhance(input)
except (RateLimitError, ServiceDown):
return manual_default(input)
```
### Calibrated confidence display
```javascript
function confidenceLabel(score) {
if (score > 0.95) return { label: 'High confidence', color: 'green' };
if (score > 0.8) return { label: 'Likely', color: 'blue' };
if (score > 0.6) return { label: 'Possible', color: 'orange' };
return { label: 'Uncertain — verify', color: 'red' };
}
```
### Diff-based AI edit (review)
```typescript
// 매 LLM proposes change → user sees diff → approves/rejects
function showDiffForApproval(original: string, proposed: string) {
return {
diff: computeDiff(original, proposed),
actions: ['Accept', 'Reject', 'Edit'],
};
}
```
### Per-user adaptation
```python
class PersonalizedAI:
def __init__(self, user):
self.user = user
self.preferences = load_preferences(user)
def suggest(self, context):
base = llm.generate(context)
return adapt_to_style(base, self.preferences.style)
def feedback(self, suggestion, accepted):
self.preferences.update(suggestion, accepted)
```
### Multi-step approval (agent)
```python
def hcai_agent(goal, tools):
plan = llm.plan(goal)
for step in plan:
approval = ask_user(f'Approve: {step}?')
if not approval: return 'cancelled'
result = execute(step, tools)
update_user(result)
```
### AI vs human comparison (audit)
```python
def compare_ai_vs_human(items, ai_outputs, human_outputs):
return {
'agreement': sum(1 for a, h in zip(ai_outputs, human_outputs) if a == h) / len(items),
'ai_overrides_kept': count(item.ai_overridden_by_human for item in items),
}
```
### Critique mode
```python
def ai_critique(user_work, llm):
return llm.generate(f"""Critique constructively. Don't rewrite.
User work:
{user_work}
Output:
- strengths: ...
- weaknesses: ...
- specific suggestions: ...""")
```
## 매 결정 기준
| 상황 | Mode |
|---|---|
| Code editor | Suggestion + accept |
| Medical diagnosis | Decision support |
| Writing | Critique + suggest |
| Auto-routing | Monitored automation |
| High-stakes | Full HITL |
| Low-stakes ambient | Background AI |
**기본값**: 매 high control + high automation + 매 reversible + 매 explainable + 매 disclosure + 매 audit log.
## 🔗 Graph
- 부모: [[AI]] · [[Human-Computer-Interaction]]
- 변형: [[Augmented-Intelligence]] · [[Decision-Support]]
- 응용: [[Human-in-the-loop (HITL)]] · [[Copilot]] · [[Constitutional-AI]]
- Adjacent: [[Ethics & AI]] · [[Empathy-in-AI]] · [[Excessive Agency]]
## 🤖 LLM 활용
**언제**: 매 모든 AI product. 매 productivity. 매 medical.
**언제 X**: 매 fully autonomous infra.
## ❌ 안티패턴
- **AI replaces human**: 매 trust loss.
- **Hide AI involvement**: 매 transparency 의 violate.
- **No undo**: 매 destructive.
- **Confidence theater**: 매 fake high score.
- **Auto-accept default**: 매 human disempower.
## 🧪 검증 / 중복
- Verified (Shneiderman HCAI 2022, Endsley levels of automation).
- 신뢰도 A.
## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — Shneiderman + 매 suggest / disclosure / undo / audit code |