Back to list
bnayae

offline-impact-evaluator

by bnayae

0🍴 0📅 Jan 18, 2026

SKILL.md


name: offline-impact-evaluator description: Validate proposed stack against offline requirements. Use after initial stack proposal to identify gaps, assess complexity, and recommend adjustments.

Offline Impact Evaluator

Validate the proposed stack against the offline requirement captured in architecture-refinement. Identify gaps, assess if the solution is over-engineered, and recommend stack adjustments when needed.

Standalone Usage

Can be invoked directly:

  • "Does this stack support session-durable offline?"
  • "Evaluate offline capability of Next.js + Supabase"
  • "Is this architecture over-engineered for transient offline?"

Prerequisites

Requires:

  • Architecture brief with offline_requirement.level
  • Stack candidates from candidate-generator

Evaluation Process

Step 1: Map Required vs. Actual Capability

Required LevelMinimum Actual Capability
noneNo offline logic needed
transientIn-memory buffering, retry logic, graceful degradation
session_durableIndexedDB/SQLite, background sync, service worker
strong_offline_firstCRDT/event sourcing, conflict resolution, guaranteed sync

Step 2: Assess Each Stack Component

For each candidate, evaluate:

ComponentOffline Consideration
FrontendService worker support, offline detection, UI graceful degradation
Data LayerLocal storage technology, query capability offline
SyncBackground sync API, conflict resolution strategy
AuthToken caching, session persistence, refresh handling

Step 3: Gap Analysis

Identify:

  • Under-delivery: Required capability not met
  • Over-engineering: Unnecessary complexity for the requirement
  • Risk areas: Components with weak offline story

Step 4: Recommendations

If gaps exist:

  1. Recommend component swaps or additions
  2. Estimate implementation complexity delta
  3. Flag if cost re-evaluation is needed

Offline Technology Reference

StrategyPersistenceSyncComplexityUse Case
Cache-onlyNoneNoneLowStatic assets, read-only data
IndexedDBSession+Manual/BGMediumTransactional local data
SQLite (WASM)Session+ManualMedium-HighComplex queries offline
Event QueueDurableBG SyncMediumAction buffering
CRDTDurableAutomaticHighReal-time collaboration, conflict-free

Output Contract

offline_impact_evaluation:
  stack_id: "<reference>"
  
  requirement:
    level: "<none|transient|session_durable|strong_offline_first>"
    session_close_behavior: "<loses_data|persists_locally>"
    sync_strategy: "<none|background_sync|manual_sync|crdt>"
  
  assessment:
    actual_level: "<none|transient|session_durable|strong_offline_first>"
    components:
      frontend:
        capability: "<level>"
        notes: "<details>"
      data_layer:
        capability: "<level>"
        technology: "<what provides offline>"
      sync:
        capability: "<level>"
        strategy: "<how sync works>"
  
  gap_analysis:
    has_gap: true|false
    gap_description: "<what's missing>"
    over_engineered: true|false
    over_engineering_notes: "<why it's excessive>"
  
  risks:
    - risk: "<risk description>"
      severity: "<low|medium|high>"
      mitigation: "<how to address>"
  
  recommendations:
    - action: "<what to change>"
      component: "<which component>"
      impact:
        cost: "<increase|decrease|same>"
        complexity: "<increase|decrease|same>"
        timeline: "<increase|decrease|same>"
  
  verdict:
    stack_viable: true|false
    requires_stack_change: true|false
    requires_cost_reevaluation: true|false

Example: Gap Analysis

offline_impact_evaluation:
  stack_id: "next-vercel-supabase"
  
  requirement:
    level: "session_durable"
    session_close_behavior: "persists_locally"
    sync_strategy: "background_sync"
  
  assessment:
    actual_level: "transient"
    components:
      frontend:
        capability: "transient"
        notes: "No service worker configured by default"
      data_layer:
        capability: "none"
        technology: "Server-side only"
      sync:
        capability: "none"
        strategy: "N/A"
  
  gap_analysis:
    has_gap: true
    gap_description: "Stack lacks local persistence and background sync"
    over_engineered: false
  
  risks:
    - risk: "Data loss on network interruption"
      severity: "high"
      mitigation: "Add IndexedDB layer with sync"
  
  recommendations:
    - action: "Add @tanstack/query with offline persistence"
      component: "data_layer"
      impact:
        cost: "same"
        complexity: "increase"
        timeline: "increase"
    - action: "Implement service worker for caching"
      component: "frontend"
      impact:
        cost: "same"
        complexity: "increase"
        timeline: "increase"
  
  verdict:
    stack_viable: true
    requires_stack_change: false
    requires_cost_reevaluation: false

Integration Points

  • Invoked by: stack-evaluation (after candidate-generator)
  • May trigger: Cost re-evaluation if requires_cost_reevaluation: true
  • Feeds into: implementation-plan (offline phase planning)

Score

Total Score

45/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

0/5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon