Lightweight summary of skills (no analyses/deps loaded). Default filters to active skills only.
(self, *, active_only: bool = True)
| 905 | # Analytics / Summary |
| 906 | @_db_retry() |
| 907 | def get_summary(self, *, active_only: bool = True) -> List[Dict[str, Any]]: |
| 908 | """Lightweight summary of skills (no analyses/deps loaded). |
| 909 | |
| 910 | Default filters to active skills only. |
| 911 | """ |
| 912 | with self._reader() as conn: |
| 913 | where = "WHERE is_active=1 " if active_only else "" |
| 914 | rows = conn.execute( |
| 915 | f""" |
| 916 | SELECT skill_id, name, description, category, is_active, |
| 917 | visibility, creator_id, |
| 918 | lineage_origin, lineage_generation, |
| 919 | total_selections, total_applied, |
| 920 | total_completions, total_fallbacks, |
| 921 | first_seen, last_updated |
| 922 | FROM skill_records |
| 923 | {where} |
| 924 | ORDER BY last_updated DESC |
| 925 | """ |
| 926 | ).fetchall() |
| 927 | return [dict(r) for r in rows] |
| 928 | |
| 929 | @_db_retry() |
| 930 | def get_stats(self, *, active_only: bool = True) -> Dict[str, Any]: |
no test coverage detected