 (defn compute-attribute-graph*
   [{::keys [root index-attrs] :as graph}
    {:com.wsscode.pathom.connect/keys [index-oir attribute]
-    ::keys                           [skip-attr-provided?]
     :as                              env}]
   (cond
     (get index-attrs attribute)

          (merge-node-provides node-id {(pc-attr env) {}})
          (push-root-to-ancestor node-id))
      graph)

    ; TODO maybe remove this
    (and skip-attr-provided? (attribute-provided? graph attribute))
    (update-in graph [::nodes root ::requires] merge-io {attribute {}})

    :else
    (let [graph'


(defn include-node [graph env {::keys [node-id] :as node}]
  (let [sym (pc-sym node)]
    (if (nil? node-id) (throw (ex-info "Missing Node!" {})))
    (-> graph
        (assoc-in [::nodes node-id] node)
        (cond->
