Skill Adaptation Debt Engine
A Streamlit dashboard that measures skill adaptation debt instead of predicting outcomes. It decomposes pressure into churn, novelty, and breadth to explain which roles/industries are becoming harder to staff. Includes role/industry reports, skill pressure maps, what-if scenario simulation, and a dataset explorer.
Install / Use
npx skills add AmirhosseinHonardoust/Skill-Adaptation-Debt-EngineInstalls into whichever agent you are using.
README
What this project is
Most labor-market tools try to predict outcomes (salary, growth, “hot jobs”). This repo does something different:
It treats each job role as a stability problem and computes how much “skill adaptation debt” a role accumulates when:
- demanded skills churn month-to-month (instability / volatility),
- demanded skills are rare (hard to hire/train),
- and the role requires many distinct skills simultaneously (cognitive + coordination load).
The output is not “will you lose your job.”
It’s where stability is being borrowed, where teams will feel training friction, and which roles have high learning debt if the market moves.
Dataset & Copyright
This project uses the “Future Jobs and Skills Demand 2025” dataset from Kaggle:
Attribution
- Full credit belongs to the dataset owner/uploader on Kaggle.
- This repository does not claim ownership of the dataset.
License / Usage Notes
- The dataset is subject to Kaggle’s dataset terms and the license shown on the dataset page.
- Please review the license before reusing, redistributing, or publishing derived versions of the raw data.
- This repo is intended for educational and analytical purposes; if you plan to include the raw dataset in repository/releases, make sure the dataset license explicitly allows redistribution.
How this project uses the data
- The app reads the dataset to compute skill rarity, skill churn, and role/industry “adaptation debt” metrics.
- The outputs (charts/tables) are derived analytics and do not replace the original dataset source.
Core idea: Adaptation Debt (pressure-first metric)
Adaptation debt is a weighted pressure index, not a prediction.
1) Churn Pressure (instability over time)
A role can look fine today but still be unstable if its required skills change frequently.
We measure churn as a proxy for “how quickly the definition of competence is moving.”
High churn pressure means:
- onboarding becomes harder,
- internal training becomes stale faster,
- hiring accuracy drops (because yesterday’s skill list no longer fits).
2) Novelty Pressure (rare + churning = learning friction)
A skill can be rare but stable (fine).
A skill can be common but volatile (manageable).
The hardest regime is rare + volatile, because it produces planning failure: you can’t reliably staff or train ahead of the curve.
Novelty pressure is designed to highlight:
- “the skill doesn’t exist widely yet”
- while also “the target keeps moving”
3) Breadth Pressure (role complexity)
Breadth is the number of distinct skills expected in the role.
High breadth pressure usually signals:
- a “Swiss-army role” (too much scope),
- a coordination burden (“you must integrate many systems”),
- or a maturity mismatch (companies stuffing multiple jobs into one listing).
Final metric (what sliders control)
The sidebar “Debt weights (advanced)” controls the mixture:
- Churn weight → how much volatility dominates debt
- Novelty weight → how much rare+volatile dominates debt
- Breadth weight → how much complexity dominates debt
You’re not changing “truth”, you’re changing the lens (what kind of instability you care about).
App pages: what each view answers
Role Report
Question: “For this specific role, what is the debt profile and which skills cause it?”
You get:
- adaptation debt score (final index),
- churn / novelty / breadth sub-pressures,
- top skill drivers (the “why” list).
Industry Report
Question: “Inside an industry, which roles concentrate adaptation debt and why?”
You get:
- a ranked table of roles within one industry,
- pressure components per role,
- a quick “how to interpret” guide.
Skill Explorer
Question: “Which skills are globally rare, churning, or novelty-heavy?”
You get:
- global counts/shares (how common),
- rarity,
- churn index,
- novelty index,
- and a search field for quick lookup.
Scenario Simulator
Question: “If market pressure increases (more churn / more novelty / more breadth), how sensitive is this role?”
You get:
- baseline vs scenario debt,
- a delta explanation (“what this means”),
- and a simple visual comparison to communicate fragility vs robustness.
Dataset Explorer
Question: “What’s actually inside the processed dataset? Can I inspect slices and export?”
You get:
- dataset metrics (rows / roles / industries / unique skills),
- filters,
- a preview table for transparency.
How to run
1) Install
pip install -r requirements.txt
2) Launch Streamlit
streamlit run app/app.py
3) (Optional) If you have a CLI in this repo
python -m src.cli --help
Plotly config (recommended)
Streamlit is deprecating Plotly keyword args and wants a config= dict.
Use something like this once and reuse it everywhere:
PLOTLY_CONFIG = {
"displayModeBar": True,
"responsive": True,
"scrollZoom": True,
"displaylogo": False,
}
Then render like:
st.plotly_chart(fig, config=PLOTLY_CONFIG, width="stretch")
Project structure
Skill-Adaptation-Debt-Engine/
├─ app/
│ └─ app.py # Streamlit UI (all pages / plots)
├─ src/
│ ├─ config.py # paths, constants, defaults (optional)
│ ├─ data.py # load dataset, caching helpers
│ ├─ metrics.py # churn/rarity/novelty/breadth + debt score
│ ├─ plots.py # plotly chart builders (optional but clean)
│ └─ cli.py # CLI entry points (optional)
├─ data/
│ ├─ raw/ # raw CSV from Kaggle (optional)
│ └─ processed/ # processed/scored outputs (optional)
├─ requirements.txt
├─ README.md
└─ LICENSE
Screenshots & walkthrough
1) Dataset Explorer (transparency + slicing)
<img width="1331" height="653" alt="Screenshot 2025-12-20 at 17-45-07 Skill Adaptation Debt Engine" src="https://github.com/user-attachments/assets/8c5f14ac-89d7-4d84-b678-deb3d687abb0" />What you’re seeing
- The left sidebar sets the lens (weights) and the view mode.
- The main panel is a transparency layer: it tells you what the app actually computed and stored.
What the top counters mean
- Rows: total job postings loaded into the view (after parsing/cleaning).
- Roles: distinct job titles normalized into role groups (depends on dataset).
- Industries: distinct categories (AI, Blockchain, Quantum Computing).
- Unique skills: distinct skills extracted after tokenization + cleanup.
Why this view matters
- Pressure metrics can feel abstract. This page prevents “black-box syndrome.”
- It’s where you sanity-check parsing (“Did ‘PyTorch’ become ‘Pytorch’ twice?”).
- It’s where you export slices (role-filtered, industry-filtered) for reports.
2) Industry Report (where debt concentrates)
<img width="1309" height="511" alt="Screenshot 2025-12-20 at 17-42-35 Skill Adaptation Debt Engine" src="https://github.com/user-attachments/assets/80204c5d-94a3-4632-88b8-70f3e950b7de" />What you’re seeing
- A single industry is selected (example shows AI).
- Roles inside that industry are ranked by debt_score.
How to read the columns
- debt_score: final weighted pressure index (the “headline”).
- churn_pressure: volatility / month-to-month movement in demanded skills.
- novelty_pressure: rare + churning combined (learning friction).
- breadth_pressure: how many distinct skills the role stacks.
- unique_skills: raw count of extracted distinct skills (useful for debugging breadth).
How to interpret rankings
-
Top roles aren’t necessarily “best paid” or “most important.”
-
They’re the roles where organizations will feel:
- hiring friction,
- training lag,
- skill mismatch,
- and role definition drift.
3) Industry Report chart (top debt roles)
<img width="1025" height="356" alt="Screenshot 2025-12-20 at 17-42-51 Skill Adaptation Debt Engine" src="https://github.com/user-attachments/assets/ebd2b16f-0cb0-4b03-931c-27ced9253a38" />What you’re seeing
- A quick visual of the top adaptation-debt roles in the selected industry.
- This chart is designed for communication: a manager can understand it in seconds.
What “high debt” typically means in practice
- Job descriptions are unstable or overloaded.
- Teams must constantly retool.
- Onboarding time increases.
- The role’s “definition of done” shifts frequently.
Use case
-
Put this plot into an internal slide deck to justify:
- upskilling budget,
- narrowing scope (“split this role into two”),
- improving documentation and internal tooling.
4) Skill Pressure Map (rarity × churn)
<img width="1005" height="475" alt="Screenshot 2025-12-20 at 17-43-45 Skill Adaptation Debt Engine" src="https://github.com/user-attachments/assets/d4608
Related Skills
python-debugpy
385.5kDebug Python with pdb, breakpoint(), post-mortem inspection, and debugpy remote attach.
skill-creator
385.5kCreate, edit, audit, tidy, validate, or restructure AgentSkills and SKILL.md files.
claude-opus-4-5-migration
140.6kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
automl-hyperparameter-optimization
40.5kAutoML and hyperparameter optimization rules for Python ML projects using Ray Tune, Optuna, PyCaret, and time-series AutoML libraries
