Skip to content

fix(skills): explain outputs written inside a Git working tree - #3977

Closed
azizur100389 wants to merge 2 commits into
Graphify-Labs:v8from
azizur100389:codex/output-notice
Closed

azizur100389 wants to merge 2 commits into
Graphify-Labs:v8from
azizur100389:codex/output-notice

Conversation

@azizur100389

@azizur100389 azizur100389 commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Closes #3941.

The final skill report now tells users when Graphify creates or updates an output directory inside their Git working tree, gives its actual absolute path, and links to Team setup for sharing outputs or keeping them local. The notice requires checking the actual output boundary and leaves staging and ignore-rule changes to the user.

Edited the three authoritative core fragments, regenerated all hosts and snapshots, and added an exact monolith allowance. Two regressions cover every host and reject unrelated roundtrip drift.

Upstream relevance checked against v0.9.80 (6478eb71): this remaining behavior is absent. The upstream merge preserves the newer skill cache/graph-direction and extraction fixes. Generated artifacts were regenerated from authoritative fragments.

Validation: Ruff, pre-commit, all five skillgen validators, AST graph refresh, fresh wheel installation, CLI help/install and installed-feature smoke checks pass.

Final CI passes the full suites on Python 3.10 (6797 passed, 13 repository-defined skips) and 3.12/3.13/3.14 (6796 passed, 14 repository-defined skips each), with frozen all-extras dependencies and help/install on every version. No filters or new test skips were added.

The complete Windows Python 3.12 suite finished with 39 failed, 6713 passed, 58 skipped, 1388 warnings in 1183.18s (0:19:43). All 39 failing test IDs reproduce on clean v0.9.80 under the same Git Bash environment; no introduced failures were found. The common set has 38 failures; the additional mtime-collision case reproduced on upstream too.

Pyright has exactly the same 596 diagnostics as clean v0.9.80, with no added or removed diagnostics. Bandit has the same 12 filtered baseline findings; pip-audit has the same 43 vulnerability records across 9 packages (matched by advisory aliases). Dependencies and lockfile match upstream. Security CI is non-blocking; its green status is not a claim of a clean audit.

Co-Authored-By: OpenAI Codex <noreply@openai.com>
@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown

Thanks for the pull request, @azizur100389. A maintainer will review it soon.

Want to talk it through while it is in review? Come join us on our Discord server. For longer-form discussion there is also GitHub Discussions.

A couple of things that speed up review: make sure the test suite passes on Python 3.10 and 3.13, and that the change keeps extraction deterministic.

@azizur100389
azizur100389 marked this pull request as ready for review October 1, 2026 19:28

@graphify-labs graphify-labs Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Graphify reviewed this change.

Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).


Graphify review — findings

Adds an end-of-run notice to every generated agent skill: when the actual output directory sits inside a Git working tree, the agent tells the user that Graphify created or updated it at its absolute path. The notice links to the README's Team setup section for choosing between sharing and keeping outputs local. The agent checks the working-tree boundary against the real output directory and never stages files or edits ignore rules on its own.

No blocking issues surfaced. 3 lower-confidence candidates did not survive cross-model review.

Analysis details — impact, health, verification

Impact & health

Graphify review

Impact — 1175 functions depend on the 1175 functions this change touches.

Health — this change adds coupling hotspots:

  • new: render() — 13 callers, 5 callees
  • new: audit_coverage() — 8 callers, 6 callees
  • new: main() — 3 callers, 11 callees
  • new: monolith_roundtrip() — 3 callers, 5 callees
  • new: test_audit_catches_a_dropped_non_allowlisted_heading() — 0 callers, 6 callees

Verification — 1175 functions in the blast radius were not formally verified this run (proofs are advisory here).

Gate & verification

graphify gate

PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.

Advisory (not blocking):

  • verification_scope: 1175 function(s) in the blast radius were not formally verified this run

Test selection

Test selection

312 of 312 test file(s) selected (100%) via static blast radius.

Escalated to a full run for safety — the selection is not trustworthy on its own (see below). CI should run the whole suite.

  • tests/test_affected_cli.py — full-run-safety
  • tests/test_affected_member_seed.py — full-run-safety
  • tests/test_agents_platform.py — full-run-safety
  • tests/test_analyze.py — full-run-safety
  • tests/test_anthropic_custom_endpoint.py — full-run-safety
  • tests/test_antigravity_install.py — full-run-safety
  • tests/test_apm_fallback_version.py — full-run-safety
  • tests/test_architecture_doc.py — full-run-safety
  • tests/test_astro_extraction.py — full-run-safety
  • tests/test_astro_import_ids.py — full-run-safety
  • tests/test_atomic_canvas_export.py — full-run-safety
  • tests/test_atomic_version_stamp.py — full-run-safety
  • tests/test_atomic_writes.py — full-run-safety
  • tests/test_backend_env_isolation.py — full-run-safety
  • tests/test_backend_extras.py — full-run-safety
  • tests/test_benchmark.py — full-run-safety
  • tests/test_benchmark_raw_graph.py — full-run-safety
  • tests/test_blade_extractor.py — full-run-safety
  • tests/test_build.py — full-run-safety
  • tests/test_build_merge_dedup_scope.py — full-run-safety
  • tests/test_build_merge_hyperedges_and_prune.py — full-run-safety
  • tests/test_build_merge_shrink_guard.py — full-run-safety
  • tests/test_builtin_global_type_refs.py — full-run-safety
  • tests/test_cache.py — full-run-safety
  • tests/test_callflow_html.py — full-run-safety
  • tests/test_cargo_introspect.py — full-run-safety
  • tests/test_cargo_missing_manifest.py — full-run-safety
  • tests/test_carried_hyperedge_remap.py — full-run-safety
  • tests/test_case_sensitive_resolution.py — full-run-safety
  • tests/test_charmap_encoding.py — full-run-safety
  • tests/test_chunking.py — full-run-safety
  • tests/test_cjs_module_extension.py — full-run-safety
  • tests/test_claude_cli_backend.py — full-run-safety
  • tests/test_claude_md.py — full-run-safety
  • tests/test_cli_broken_pipe.py — full-run-safety
  • tests/test_cli_export.py — full-run-safety
  • tests/test_cli_help.py — full-run-safety
  • tests/test_cluster.py — full-run-safety
  • tests/test_cluster_exclude_hubs.py — full-run-safety
  • tests/test_cobol_extractor.py — full-run-safety
  • tests/test_codebuddy.py — full-run-safety
  • tests/test_community_hub_labels.py — full-run-safety
  • tests/test_community_labels_skill.py — full-run-safety
  • tests/test_confidence.py — full-run-safety
  • tests/test_corrupt_graph_json.py — full-run-safety
  • tests/test_cpp_nested_and_cli.py — full-run-safety
  • tests/test_cpp_objc_cross_file_calls.py — full-run-safety
  • tests/test_cpp_preprocess.py — full-run-safety
  • tests/test_cross_extension_reexport_self_cycle.py — full-run-safety
  • tests/test_cross_language_call_resolution.py — full-run-safety
  • … and 262 more

non-code file(s) changed (graphify/skill-agents.md, graphify/skill-aider.md, graphify/skill-amp.md, graphify/skill-claw.md, graphify/skill-codex.md …) → running the full suite for safety (a code graph can't see config/fixture/data deps)

changed code file(s) with no mapped test (graphify/skill-agents.md, graphify/skill-aider.md, graphify/skill-amp.md, graphify/skill-claw.md, graphify/skill-codex.md …) — a coverage gap or a missing link — running the full suite rather than only the selected tests

Selection is safe under the controlled-regression assumption; always-run tests + a periodic full run are the backstops. Advisory — it never changes the check verdict.

· 5 more finding(s) on lines outside this diff (see the check run).

Preserve current extraction, skill generation and graph direction fixes. Refresh remaining feature coverage and regression tests.

Co-Authored-By: OpenAI Codex <noreply@openai.com>
@safishamsi

Copy link
Copy Markdown
Member

Thanks @azizur100389. The working-tree notice this adds is already handled on the default branch by #4308 (shipped in 0.9.85), and rebasing this would add a second, slightly different notice for the same thing. Closing as superseded by #4308.

@safishamsi safishamsi closed this Oct 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SKILL.md never tells the user that graphify-out/ was written into their working tree

2 participants