kosif199022-jpg/kosif-omni
KOSIF Omni — one plugin for Claude and ChatGPT: unified front door, 49 skills, a 1,040-member Genius Council, 65 deterministic MCP tools (audit/IFRS, code & web audits, prompt/cinema engineering, lighting, audio/image measurement, gated browser/GitHub/release), Arabic-aware search over your own files, and guarded WhatsApp.
Changelog
11.11.0 — 2026-10-06 · KOSIF Replicate: redraw an image in Paint by hand, pixel-exact, with proof
Added
kosif_paint_copy(kosif_mcp/replicate.py, alsopython -m kosif_mcp.replicate): draws an image in Windows Paint with Paint's own tools only (Pencil 1 px, Edit colors, Opacity, Eraser) and Claude's pen. Each colour is set through the colour dialog and confirmed on the Colour 1 swatch before any pixel is drawn. Every pixel is one pen tap. The canvas is checked pixel by pixel and repair passes run until nothing differs.--erase-transparentturns the original's transparent pixels into real transparency with the 1-px Eraser.--save new.pngsaves from Paint (Ctrl+S → Save as) and compares the file with the original, RGB and alpha. Resumable: progress is read back from the canvas.- Colours Paint's dialog cannot hold: it keeps hue below 359°, so #F40001 becomes #F40004 (measured). These are predicted and drawn in two coats: a base D at 100 %, then S = D + 5·(T − D) at 20 % opacity, which lands exactly on T (measured exact for F40001 and F50003).
nat.uia_range/uia_set_range: exact slider values (Paint's Size, Opacity, Zoom) without dragging.
Fixed
- A UI Automation Invoke that times out no longer hammers the app. Invoke on Paint's "Edit colors" (it opens
a modal dialog) timed out. The old code then tried Toggle, Select, Expand and DoDefaultAction on the same
button, and Paint hung for good. Now a busy HRESULT raises
AppBusy, and the batch ends asapp_busywith "look by screenshot, then use pen/keys". Element-tree reads of a busy window raiseAppBusyinstead of leaking a raw COMError as an "internal error". Any other unexpected exception is reported as a failed step. - Colours typed into a dialog that was not ready yet. The dialog is drawn inside Paint's own window, not as
a separate window, and it fades in and out. A single probe pixel read as "closed" mid-fade, so runs stopped
with "Paint did not take colour …".
look()now takes the strongest saturation along a row of the colour spectrum, which survives the fade (10/10 colours exact in a row afterwards). - Strokes were slower than taps. A paced pen stroke costs 4.9 ms per step, because it is slowed so Windows doesn't read it as a flick. A tap costs 0.97 ms. Pixels are now drawn as taps: 1,030 px/s.
Measured
- A logo of 85×98 px with 2,650 distinct colours was redrawn by hand in Paint to a 100 % match (8,330/8,330 pixels). The final resumed run set 563 colours in 437.8 s (0.68 s per colour).
- A colour change costs about 0.60 s. Paint's own fade in and out of the dialog takes about 0.42 s of that and
cannot be shortened. So 2,650 colours take about 27 minutes, while the pixels themselves take 8 seconds. Fewer
colours (
colors: 64) bring that down to about 47 s.
11.10.1 — 2026-10-06 · KOSIF Mouse: fixes from a four-app stress run
Test job: an Excel workbook (sort, total, chart, save) → Calculator cross-check → an Arabic report in Notepad saved through Save-as → a bar chart drawn by pen in Paint, all while the user kept working in other apps.
Fixed
- Pen strokes became dots. Windows read fast, straight strokes as flick gestures: 5 of 8 bars of a chart came out as a single dot. Strokes are now split into ≤5 px frames (up to 15 px on long strokes), last at least 80 ms, and rest for a moment after touching down and before lifting. The chart now draws complete. Pen input is also counted as Claude's own input, so it is never mistaken for the user's activity.
- Focus was not returned after side-effect activations: a pen tap raising Paint, a UIA
set_valueraising the Save-as dialog, or a dialog closing and activating its owner. Auto mode now hands the foreground back whenever a window of the job (or a dialog it owns) ends up in front. It leaves the foreground alone when the user switched windows during the batch. expect: {changed: true}missed thin strokes (0.12 % for a full red trend line). The change thumbnail keeps each cell's darkest and brightest value instead of one sampled pixel, and draw steps are compared only inside the drawing's own box.observewithregionshowed the screen, i.e. whatever window covered the target (a user's browser page). With atarget, the region is now cut from that window's own capture. If that capture is impossible, observe refuses instead of showing the covering window.kosif_mouse_livewaitcould match an invisible helper window, and missed a dialog that opened during the previous batch. It now starts from that batch, ignores helper windows, anddialog_openedneeds a real dialog. The change list drops message-only/hidden windows (MIT Message Only Window, WISPTIS, XCP…) and shows current titles: a common dialog is created as "Open" and renamed "Save as" a moment later.- Launch steps honour
expect. The "add expect" hint is no longer repeated on every step of a batch that is verified by a later step.
Added
launch notepadopens a blank tab: Windows 11 Notepad had reopened on the user's ownsettings.json(new_document:falsekeeps the old behaviour).drawshapes takefill: true(+fill_gap): whole-pixel hatch rows at full pen pressure, one zigzag stroke per convex shape. Closed outlines run on past their start, so a bucket fill no longer leaks through the tapered start of the stroke (it had flooded the whole canvas).- Apps seen grabbing the foreground on a UI Automation action (Calculator, dialogs) make their next background step wait for an idle user, so the user's keystrokes are not redirected.
- 14 regression tests (156 server tests).
Measured
- Chart job end to end: 49 s and a broken chart → 11 s and a complete one (outlines + bucket). Excel job: 2.7 s. Calculator: 11 background clicks in 1.6 s.
- Known limit: very small filled dots sometimes stay hollow (1 of 8).
11.10.0 — 2026-10-06 · KOSIF Mouse 2: background-first, Claude's own pointer, Live View, Excel live
Fixed
- Keystrokes could land in the Claude app. A
focusstep did not change the window the batch worked on, so the next step brought the stale "foreground" window (the Claude app) back to the front and typed there. Nowfocus/launch/window=pin the target, grounding (target) runs on that window, a foreground step refuses to send anything unless the target really is in front, and the Claude app itself is never acted on unless it is named explicitly. - Bringing a window forward no longer starts with an Alt tap (it showed Excel key tips and opened menu bars):
plain
SetForegroundWindow→ a no-op key event → thread-input attach → Alt only as the last resort.
Added
- Background delivery (default
mode:"auto") —desktop_native.py: input reaches ONE window without focus change and without moving the real cursor. Win32 controls get window messages (WM_SETTEXT, WM_CHAR at the end of the text, BM_CLICK, posted clicks/keys/wheel); modern controls get UI Automation patterns (+ MSAA default action), and if an app grabs the foreground anyway it is handed straight back. Measured on a WinForms window: Windows' UIA proxies for classic edit boxes and buttons activate the window; messages do not. Apps that drop posted input (Chromium, WinUI, Paint, GTK/Qt/SDL…) are reported asbackground_unavailableinstead of being silently driven in the foreground.mode: background | foregroundper call or per step. - Claude's own pointer — a synthetic pen device (Windows Pointer Injection, Win10 1809+) for taps, drags and
drawing: a second pointer, separate from the user's mouse. Verified: an apple drawn in Paint (4 strokes,
~1 s) with the user's cursor unchanged, focus handed back afterwards.
pointer: pen | mouse. - User-activity guard — steps that need the foreground wait until the user has been idle (injected input is told apart from theirs), restore their cursor after real-mouse clicks, and give focus back at the end.
- Live View (
live.py,kosif_mouse_live) — an out-of-context WinEvent hook (read-only) keeps a live model: windows/dialogs/menus opened or closed, foreground and focus changes, per-window content changes.actreturnschanges,waitreacts the moment a dialog opens, andobservereuses the previous element tree when Live View saw no event and the window's pixels are identical (≈0.3 s instead of 1.5–8 s on Excel). - Window capture —
observecaptures the target window itself (PrintWindow + PW_RENDERFULLCONTENT) even when other windows cover it; right-to-left windows (Arabic Office) are un-mirrored. - Drawing planned locally —
drawtakes SVG path data (svg, M/L/H/V/C/S/Q/T/Z) orshapesfitted into a canvas ref orbox, and draws everything in one go — no screenshot between strokes. kosif_excel(office_live.py) — whole jobs inside the Excel the user has open, through Excel's own API: list / new / use / add_sheet / read / write / clear / sort / total / format / chart / delete_charts / select / save / close. Reaches every Excel window (AccessibleObjectFromWindow + OBJID_NATIVEOM, hung windows skipped). Changing data of a workbook KOSIF did not create returnsneeds_approvalwith a preview. Late-bound COM pitfalls handled: Resize/Offset are built as addresses, union ranges via Application.Union (the Arabic list separator brokeRange("A1:A9,D1:D9")), a failed chart source deletes the empty chart.- Excel windows in
kosif_mouse_observereturn the sheet's real cell values and skip the grid's thousands of UI elements. - Tests: 15 new (target pinning / host guard, routes, Win32 kinds, SVG/shape fitting, Live View summary, Excel approval gate, registration, HTTP lock) — 142 OK; live test bed passes in the background.
11.9.0 — 2026-10-06 · KOSIF Sheets: Excel workbooks and SQLite databases as files
Added
kosif_sheet_build(mcp-server/kosif_mcp/office.py) builds a finished .xlsx in one call. Each sheet gets:- a real Excel Table with filters and banded rows (Arabic sheet names become Table1, Table2…);
- multi-key sorting, with empty cells always last;
- number formats: money, integer, percent, date, or any Excel code;
- auto column widths and a frozen header;
- an optional totals row with live
=SUM()formulas; - right-to-left layout when the headers are Arabic;
- an optional bar, column, line or pie chart.
Numbers and ISO dates sent as text become real numbers and dates; codes with a leading zero stay text.
Existing files are never replaced without
overwrite.
kosif_dbworks on a SQLite file with these operations:create: typed columns, primary key, required, unique and indexes;insert: parameterised; rows can be objects, lists, or both;query: one SELECT or WITH statement, over a connection opened read-only;describe;export: a query to a formatted .xlsx or a UTF-8 .csv.
- Files go to
Documents\KOSIF, or to a folder enabled for KOSIF; other paths are refused.open: trueopens the result in Excel. - Skill
kosif-sheets, command/sheets, router familysheets. - Tests:
tests/test_office.py(11). Also checked by opening a demo workbook in Excel itself: no repair prompt, tables, charts, right-to-left layout and live totals all correct.
11.8.0 — 2026-10-06 · KOSIF Mouse: fast desktop control by mouse and keyboard
Added
- KOSIF Mouse (
mcp-server/kosif_mcp/desktop.py,desktop_native.py): five tools that operate the Windows desktop directly.kosif_mouse_statusreports the backends, screen, DPI, foreground window and (optionally) Jev reachability.kosif_mouse_observereads the UI Automation controls of a window in one cached call as short refs (e1…), adds OCR text refs (t1…) when UIA is blind, and returns a screenshot with the refs drawn on it.kosif_mouse_findgrounds an Arabic/English description to one ref; close calls go to Jev (closed candidate set, asked twice); unclear or unstable answers come back as "ask the user".kosif_mouse_actruns a whole batch of steps in one call throughSendInput: click, double/right click, move, drag, scroll, Unicode typing (Arabic), hotkeys (layout-independent), UIA invoke/set_value, focus,launch(well-known programs by name),draw(polylines), waits and per-stepexpectchecks (text, title, screen changed, or a Jev yes/no).kosif_mouse_doruns one instruction end to end ("اضغط زر حفظ").
- Gate on every step, using the existing
action_gate.pyin-process:- send, delete, install and settings steps need the user's approval (
approved); - password fields, CAPTCHA/2FA/payment and elevated windows are handed to the user;
- secret-like text and Ctrl+Alt+Del / Win+L are blocked.
- send, delete, install and settings steps need the user's approval (
- Claude's own cursor (
cursor_overlay.py): an orange pointer with a spark and an action label, separate from the user's mouse. It is click-through and never takes focus, and it stays visible to the user and to screen recordings. It steps aside only for the agent's own screenshots. - Visible mode. The window being worked on is brought to the front before acting.
- Emergency stop. Moving the mouse to the top-left corner or holding Esc stops a batch before its next step.
- Transport lock. Screen capture and input are refused over the HTTP transport unless the owner sets
KOSIF_MOUSE_HTTP=1on a loopback-only bind. - MCP results can now carry image blocks (screenshots).
- Skill
kosif-mouse, command/mouse, router familymouse, and test bedtests/fixtures/mouse_testbed.ps1. - Tests:
tests/test_desktop.py, 17 offline tests plus one live test enabled withKOSIF_MOUSE_LIVE=1.
11.7.0 — 2026-10-04 · Atlas skill packs for the 30 Swarm specialists
Added
- A skill pack for every specialist. Each one gets up to 8 skills from the public library
github.com/kosif199022-jpg/kosif-atlas (
skills/), 232 skills in total.- The agent file lists them with id, licence, description and the GitHub folder.
- The agent reads a skill in full with
kosif_atlas_readand applies its method as reference data.
- Atlas tools for every agent.
kosif_atlas_read,kosif_atlas_searchandkosif_skill_autoare now in every agent's tool allowlist, so any specialist can also find skills that are not in its pack. tools/gen_swarm_skillpacks.pybuilds the packs intotools/swarm_skillpacks.json(deterministic).- Several concept searches per specialist, merged by reciprocal-rank fusion.
- A skill is kept only if:
- its licence is permissive;
- the package ships no binaries;
- its SKILL.md is readable, has 800+ characters and no prompt-injection flags;
- it mentions one of the specialist's keywords;
- it is described in Latin or Arabic script;
- it is not a single vendor's integration (
-packkits other than ElevenLabs,charly-*service layers, PostHog, Zoom…).
- At most two specialists share a skill.
- 42 off-topic picks were removed after a manual review (
BAN). - Packs are left short rather than padded: the library has no usable lighting skills, so the lighting
designer keeps the built-in
kosif-lightingplaybook.
- Test: every pack skill is readable, permissive, free of injection flags and points to its real GitHub folder (93 tests). Six sample links checked live against the public repo: HTTP 200.
11.6.0 — 2026-10-04 · Swarm personas: a personality, a way of thinking and its own tools for each agent
Built from the user's Drive folder «كتب هامة» (مجلس.txt: SCIENTISTS_COUNCIL and EXPERT_COUNCIL) and the Genius
Council's existing 24 mental moods. Defined in tools/swarm_personas.py, rendered by tools/gen_swarm_agents.py.
Added
Each of the 30 specialists now has:
- A persona (Arabic name and laqab). 15 of them are the same people as the Genius Council elite, e.g. the security auditor is E09 «حارس البوابات» and the IFRS auditor is E36 «ميزان الدفاتر».
- A mentor lens: the method of one scientist, used as a way of thinking, never role-played or quoted.
- 24 of the 30 come from the file; Watson was left out.
- Six Arab scholars fill the rest: Ibn Khaldun (fact checking), al-Khwarizmi (backend), Ibn Sina (debugging), al-Jazari (DevOps), al-Biruni (data) and Ibn al-Haytham (UX).
- A mental mood from the council's PSYCH_STATES, with its strength, blind spot, mandatory compensation, voice and signature question. All 24 moods are used.
- An inner team: the roles its helpers take when it delegates.
- Creative agents get the file's EXPERT_COUNCIL sectors (prompt engineering, characters, environments, image quality, video, post-production, audio, story, cinematic scenes, AI tools).
- Engineering and business agents get teams defined in the persona file.
- Its own tools. A real
toolsallowlist made of base tools, the agent's groups (web, shell, edit, LSP, browser) and its exact KOSIF MCP tools. All 30 sets differ, and read-only agents have no editing tools.
Tests
1 new swarm test (92 total), covering:
- each agent has a unique mentor;
- all 24 moods are used;
- every allowlisted KOSIF tool exists;
- all 30 tool sets differ;
- read-only agents cannot edit.
Notes
Left out from the source file, as before: the "Dark Triad" / dark-psychology material.
11.5.0 — 2026-10-04 · KOSIF Swarm: 30 parallel specialist agents
Added
- 30 specialist sub-agents in
agents/, generated from one roster bytools/gen_swarm_agents.py:- research & reasoning: deep researcher, fact checker, strategist, probability analyst;
- engineering: architect, backend, frontend, test, debugger, security auditor, code reviewer, DevOps, data, web operator;
- language & creative: Arabic editor, storyteller, cinema director, image prompt engineer, video producer, lighting designer, audio engineer, voice director, visual critic;
- business & governance: IFRS auditor, product manager, UX & accessibility, prompt engineer, Atlas scout,
integrator, quality gate.
Each one loads its KOSIF playbooks and MCP tools, runs at effort
high, and shares one Swarm protocol. Reviewers (fact checker, security auditor, code reviewer, visual critic, quality gate) cannot edit files.
- Nested delegation. Every specialist may launch its own helpers in parallel, down to Claude Code's limit of
three layers below the main conversation (
CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH, default 3). Helpers get self-contained briefs and own disjoint files. Specialists never re-delegate their own brief and never take outward actions (deploy, push, publish, send, pay, delete); they return them under "Needs approval". /kosif-omni:swarm <task> [--all | --n=K]launches the chosen specialists in one message, then runs the integrator and the quality gate.- Test: the agent files must match the roster, and every playbook and MCP tool they name must exist (91 tests).
Notes
- Claude Code runs at most
CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTSsubagents at once across all layers (default 20). Running all 30 at once needs a higher value insettings.json→env. - Sub-agents are a Claude Code feature. On ChatGPT and claude.ai, the
swarmprompt falls back to thekosif-omniskill.
11.4.1 — 2026-10-03 · skill selection fixes found by a live test
A live test with "انشاء انميشن تعليمي مدته 10 ثواني" picked slidev (a slide-deck tool, Jev confidence 0.69):
- "انميشن" was unknown. Neither the glossary nor the router recognised it, so the built-in
kosif-videonever became a candidate. - The query was searched as one block. The whole English query was searched together, so "learning" pulled in
machine-learning results and the animation skills (
hyperframes,remotion-*,gsap) were crowded out.
Fixed
- Glossary: animation, motion graphics, explainer/educational video, infographic (214 terms). The router's cinema family now matches the same words in Arabic and English.
- Per-concept candidate search, locally (
atlas_candidates(facets=...)) and on the edge (/select, worker 1.2.0). Every glossary concept gets its own search, merged round-robin with the full query. - Result after the fix:
- locally,
kosif-video(built-in, Jev stable) withhyperframesas the alternate; - on the edge,
hyperframes; - the other reference tasks still pick the same skills.
- locally,
- Tests: 2 new (88 total).
Demo
Desktop/الاداة/water-cycle-animation/: a 10 s educational animation (water cycle, Arabic, 1920×1080, 30 fps).
- Planning: built with the
kosif-videopipeline (frame, beat sheet, shot list, VO script) and thehyperframesmethod (visual identity first, hero-frame layout, one deterministic timeline), used as reference only. - Rendering: frames captured with Playwright/Edge and encoded with ffmpeg.
- QA: caught a duplicate SVG id that hid the sea; fixed before delivery.
11.4.0 — 2026-10-03 · Jev-driven skill engine + Cloudflare edge
Added
kosif_skill_auto(mcp-server/kosif_mcp/skillengine.py) picks the best skill for a task in one call (route → search → judge → read). Arabic or English.- Understanding: Arabic is translated by the KOSIF edge (Workers AI) and merged with a 200-term domain glossary, which also works alone offline.
- Candidates: the 46 built-in skills (router families + description overlap) and the Atlas.
- Judgement: the live Jev service chooses, with a
noneoption, asked twice in parallel with the options reversed. If Jev is unstable it uses the mean ranking; if unreachable, the deterministic ranking. - Output: the chosen playbook with alternates, receipts and per-step timings.
decided_bysays which path ran. - Measured on real tasks (Arabic and English): 0.6–2.7 s per call, every pick stable.
- Live Jev (
mcp-server/kosif_mcp/jev.py).kosif_jev_decidemakes realchoice/noul/scorecalls to kosif-jev.- Checks: packets go through the kosif-jev skill's own checks first (authorisation questions blocked, evidence required, secrets and personal data redacted).
- Calls: stability re-ask in parallel; one observed receipt per call (model id, probabilities, latency, packet digest).
- Cache: a 7-day local cache, so an identical question costs nothing.
- Configuration:
kosif_jev_statuschecks the service.KOSIF_JEV_URLoverrides the endpoint, andoffdisables it.
- Cloudflare edge API
kosif-atlas-api(edge/atlas-api/, live at https://kosif-atlas-api.kosif199022.workers.dev) for hosts without the local server.- Data: D1 (FTS5) holds all 14,793 public-mirror skills (80 MB).
- Bindings: Workers AI translation plus glossary, Jev through a service binding, GitHub mirror files cached at the edge, and per-IP rate limits.
- Endpoints:
/search,/skill/<id>,/select,/translate, a stateless MCP endpoint/mcp(claude.ai custom connector / ChatGPT developer mode) and/openapi.json(Custom GPT Action, no auth). - Separate from
kosif-think-mcp.
tools/build_edge_db.pybuilds the D1 data from the public mirror. The private mirror never goes to the edge.- Custom GPT pack:
ATLAS-ACTION.md(zero-setup skills Action), and the instructions point tokosif_skill_auto. - Tests:
tests/test_skillengine.py(18). It covers the Jev client (blocking, redaction, reordered stability re-ask, cache, disabled service), selection (Jev wins,none, unstable fallback, offline fallback,jev=false), the glossary, translation merging, and that the edge glossary stays in sync.
Changed
- Router: unmatched tasks now point to
kosif_skill_auto. The atlas and jev families list the new tools.
Fixed
- Router: English keywords now match only at a word start. "voice" fired the audio family inside "invoices".
11.3.1 — 2026-10-03 · online mirror of the Atlas
Added
- Public mirror https://github.com/kosif199022-jpg/kosif-atlas holds every embedded skill as a complete folder
(SKILL.md, references, scripts, templates, assets), each plugin with its
SOURCE.mdandLICENSE, andindex.json/index.csvat the root.- Size: 14,708 skills and 67,023 files.
- Copyleft: 85 skills from 56 copyleft plugins (GPL/AGPL/MPL/CC-BY-SA..., under
skills/x<pid>-...), with their licenses. Not embedded in the plugin. - Withheld: files that look like they carry a credential, and over-long paths, are listed in
EXCLUDED*.mdand not published.
kosif_atlas_searchresults carryonline_url, andkosif_atlas_readreturnsonline_urlandonline_folder. These links appear only for the embedded pack, whose ids match the mirror's folders, and can be overridden or disabled withKOSIF_ATLAS_ONLINE_REPO.tools/export_atlas_repo.pybuilds the mirror from the pack plus the original library.tools/export_atlas_extra.pyexports the packages left out of the pack:copyleftfor the public mirror, andrestrictedfor a private personal-reference mirror.- Test:
test_online_links_point_at_the_mirror.
Fixed
- The integrity test's secret pattern no longer flags
sk-inside words, such ashomebrew-cask-...in ATLAS_NOTICES.md.
11.3.0 — 2026-10-03 · the Atlas is built in (no library folder needed)
Added
- Embedded Atlas pack. The Atlas pack ships with the plugin in
mcp-server/kosif_mcp/data/as two files:atlas_pack.kpack(43 MB: index, metadata, licenses, inspection reports) andatlas_pack.blocks.kpack(66 MB: LZMA-compressed content blocks). Each stays under GitHub's 100 MB file limit.- Contents: 3,635 plugins and 14,708 skills (40,213 unique
.md/.txtfiles), licensed MIT (3,280), Apache-2.0 (337), BSD-3-Clause (10), and a few mixed permissive licenses. - Not embedded: 1,540 packages whose licenses do not permit redistribution, and 48 packages with a DO_NOT_INSTALL static verdict.
- Default source: the pack.
kosif_atlas_search,kosif_atlas_read,kosif_atlas_inspect(precomputed reports) andkosif_atlas_vendorall work offline. - External library: optional, through
KOSIF_ATLAS_SOURCE=external+kosif_atlas_configure+kosif_atlas_index, for reading the non-redistributable skills.
- Contents: 3,635 plugins and 14,708 skills (40,213 unique
python -m kosif_mcp.atlas pack <library> <out.kpack>builds and splits a pack;split <pack>splits an existing one.- ATLAS_NOTICES.md lists every embedded plugin with its license, source and commit; license texts are stored in the pack and written next to vendored skills.
- Tests:
TestAtlasPackbuilds a split pack from the synthetic library, deletes the library folder, then checks search, read, inspect and vendor offline. It also covers the license exclusion, the exclusion of an MIT package with a curl-to-bash hook, and that a skill with non-embedded files is never vendored half-copied.
Changed
- The pack uses the
.kpackextension, so packaging (which skips.sqlitestate files) keeps it. - One shared read-only SQLite connection per source instead of one per call.
11.2.0 — 2026-10-03 · KOSIF Atlas: the whole plugin library on demand
Added
- KOSIF Atlas (
mcp-server/kosif_mcp/atlas.py, 7 tools; skillkosif-atlas): indexes a split third-party plugin library (the Claude_ChatGPT_Plugins collection: 5,223 packages, 21,172 SKILL.md files) into SQLite FTS5 without extracting or bundling it. The split parts are read in place.kosif_atlas_configure/kosif_atlas_index/kosif_atlas_status.kosif_atlas_searchdefaults to permissive licenses, collapses duplicate skills to the copy with the fewest risk flags, and attaches license, source and risk flags to every hit.kosif_atlas_readreturns a skill on demand as UNTRUSTED reference data, with prompt-injection flags.kosif_atlas_inspectis a static check (MCP servers, hook commands, scripts, binaries, code scan) with the verdicts READ_ONLY_OK / REVIEW_BEFORE_INSTALL / DO_NOT_INSTALL. It executes nothing.kosif_atlas_vendorcopies one permissive skill into a skills folder, with LICENSE and ATTRIBUTION.md. It requires confirm=true and refuses copyleft or unknown licenses, DO_NOT_INSTALL packages and binaries.
- The router's new
atlasfamily, and an Atlas hint whenever no built-in family matches. - 10 curated third-party skills (all MIT, all READ_ONLY_OK, reviewed), with three new router families
(
evals,research,product) and additions tocode,webandaudit:- LLM judges and eval suites
- prompt engineering
- deep claim verification and citation checking
- STRIDE threat modelling
- PRDs and requirements elicitation
- WCAG audits
- hledger See THIRD_PARTY_NOTICES.md.
tests/test_atlas.pyruns on a synthetic split library that includes a malicious package (a curl-to-shell hook, an MCP server, and an injected "paste your API key" instruction). That package is flagged, defaults to excluded, and is never vendorable.
Fixed
- Local Full Pro guard (
kosif_full_pro_entry) refused every tool withNO_AUTHORIZATIONuntil 17,360 Jev calls were done, andobserveflagged read-only evidence tools as BYPASS, contradictingmodes.md(run the council and gates, route only consequential actions). The MCP layer now passes--read-onlywhen the registry marks the proposed tool read-only; such tools are allowed and recorded asEVIDENCEwithcounts_as_execution:false. Executors and the 4 writing tools stay blocked; a direct executor is still a bypass. kosif_risk_gateaction gate failed open: anyside_effectoutside its vocabulary (e.g.external_message,send) with a verified target returned PASS "low-risk-write" without approval, and an outbound action labellednonepassed as read-only. Unrecognized side effects now return VERIFY with the allowed list;external_writestyle spellings are normalized; send/post/publish/upload/share/reply/forward/submit/transfer actions labellednoneorlocal-writeare escalated toexternal-write.kosif_risk_gateMCP schema declared onlygate, so hosts sent the flags untyped and PASS was unreachable over MCP. All gate fields are now declared (side_effectas an enum, flags as booleans); the script also accepts"true"/"false"strings from direct callers. +7 self-test checks, +1 MCP test.kosif_delivery_gatereturned BLOCK (score 0) on the plugin itself: all 6 blockers were reviewed false positives (deliberate scanner fixtures inregression_self_test.py/test_server.py, and the scanner's own docstring and rule patterns). Those lines now carry the existingkosif-scan: ignoremarker, which is documented incode_scan.py; the gate now gives PASS. New tests: the marker is line-scoped, and the package must pass its own delivery gate.
11.1.1 — 2026-10-02 · remote endpoint follow-up
Fixed
kosif-thinkremote endpoint moved from/mcp/v0.18.8to/mcp/v0.22.3, which the live server now announces as its primary endpoint (v0.18.8became compatibility-only). Found bykosif_doctor remote=true(.mcp.json,mcp.json, Full Pro host-entry notes).tools/build.pycrashed withUnicodeEncodeErrorafter a successful smoke test when stdout was a non-UTF-8 Windows console (cp1256); it now writes UTF-8.
11.1.0 — 2026-10-02 · capability-truth fixes
Fixed
kosif-thinkremote endpoint moved from the compatibility-only/mcp/v0.18.6?rev=…to the server's announced primary/mcp/v0.18.8(.mcp.json,mcp.json).kosif_prompt_forge:str.capitalize()lowercased Flux style/quality text ("ARRI Alexa" → "arri alexa", "VFX" → "vfx"); locks already stated in the subject were repeated on token-budget platforms; video prompts printed24instead of24 fpsand glued motion on with "while".kosif_image_prompt_lint: concrete quality cues (film grain, subsurface scattering, iridescence, translucency…) now count; the hint no longer recommends the vague boosters the forge flags.kosif-full-pro-host-entry: removed hardcoded stale runtime/endpoint versions; points to the live check instead.
Added
kosif_doctor remote=true: probes the optional backend and separates reachability, stale endpoint and missing OAuth sign-in (HTTP 401), each with a concrete fix. Offline by default; never flips the localok.kosif_corpus_configure: persists the corpus folder in the state dir (no env var or restart needed); refuses folders outside the enabled sandbox.
11.0.0 — 2026-10-02 · KOSIF Omni (first unified release)
Added
- Unified plugin merging Source kosif Do 10.9.1, kosif A1990 1.3.0, kosif Do Mobile 21.0.1, KOSIF Think 2.2.1, Jev Browser 1.0, Release Bridge 1.0, Cognitive Core 1.8.1 and the JEV WhatsApp bridge.
kosif-omnifront door skill with Standard / Council / Deep / Full Pro modes, host adapters and honest local-engine receipts.- MCP server (stdio + HTTP, standard library only) with 44 tools, resources, prompts, REST + OpenAPI facade, path sandbox, bearer auth.
- Genius Council tools over the 1,040-member library (panel, expert, protocol, 500-profile overlay).
- Arabic-aware local full-text corpus search (SQLite FTS5, exact-duplicate detection, resumable indexing).
- New skills:
kosif-cinema-director(from Dragon / Blue Jewel / Cinema AI / Omni-Sovereign / Black Camel sources),kosif-voice,kosif-whatsapp,kosif-jev-browser,kosif-expert-council. - Claude Code commands and sub-agents;
.mcpbextension; per-skill zips; ChatGPT plugin zip; Custom GPT pack; Claude Project instructions.
Changed
- The five "Mandatory 5.4 entry override" blocks now apply only when Full Pro is explicitly requested, and name the local-engine path instead of failing closed outside ChatGPT.
Not included on purpose
- "Dark Psychology / Mind Reading / Profiling" capabilities from the source prompts.
- The remote KOSIF Think backend itself, Secure Executor backend, Computer/Voice Director providers (referenced, optional, never assumed).