How do I find out which of my smart rules is misfiring?

Hi all,

I have a bunch of Smart Rules to automatically file my statements and other documents (I did not want to have it all in one script, which is nice because I’d full control but I’d giving up on DT’s on action and smarts like scan for dates in the file names or contents).

When I sit down to do my paperless run I end up with about 20 PDFs to file, I import them all into DT and my Smart Rules do their magic. But I think one of the rules is being activated for a file I didn’t intended it to. I tried to see if there where logs like “Smart Rule ‘x’ applied to file ‘y’” but I didn’t see anything.

My question is: how do I find out—without manually disabling all my rules or reading the predicates for all of them—which Smart Rule applied to a file? Maybe the last one, or just a list of the last executed rules? :thinking:

One possibility would be to edit all your rules so that they’re executed only on demand. Afterwards import some files or ideally the same files and select each smart rule in the sidebar to figure out if the results are the expected ones.

For users that have few Smart Rules (like me) this might be a way however it’s of course cumbersome. But some users have over hundred Smart Rules.

Similar to the success of Custom Meta Data in DEVONthink 3 Smart Rules seem to be a widely used feature and like the usage of Custom Meta Data some users seem to create a lot of them. Both features are great, however there wasn’t an update in their usability since they were introduced (or maybe I‘m not aware of it at the moment).

E.g. instead of manually editing Smart Rules a little introspection would be helpful, e.g.

  • logging the executing Smart Rule (turned on/off via a (hidden) preference)
    • via a Smart Rule action
    • via AppleScript
  • returning the executing Smart Rule’s scope via AppleScript
    i.e. in which group does a Smart Group search

Smart Rules are super useful, but developing or debugging them tends to be a pain.

I’ve spent hours trying to make (some) Smart Rules work but finally gave up. Meanwhile I’m really “afraid” of setting up new ones because I know that if something doesn’t work out then there’s almost no chance to debug them :frowning:


While we’re at it, I’d to throw my hat in the ring for logging/returning the scope in JavaScript, too.

1 Like

Enabling and disabling all event triggers in a smart rule is now possible via a checkbox in the smart rule editor, e.g., to temporarily disable rules for debugging.

In the release notes for 3.8.1 :heart_eyes:

Still needs a disable for all rules, but this is nice.

Still needs a disable for all rules

What do you mean by this, literally disabling all smart rules via a single command?

Yes, in the spirit of the topic the idea is to be able to find out which of all the rules is triggering without having to go change all of them. The new feature makes it better by not having to make a destructive change to the rules with the new checkbox but it still requires going through all of rules and unchecking the checkbox.

My idea is that once all smart rules triggers are disabled I can click on them like a smart group and see which one is erroneously matching the file.

Ahh… So like multiple selection in the Smart Rules section of the Navigate sidebar, then disabling all selected via something like a Tools menu command or in the contextual menu?

Development would have to assess that.

Yes something like that. I don’t mean to be prescriptive on how to achieve it more like just putting my ideas out there for consideration.

Totally reasonable.

The next release will add a contextual/action menu item to en-/disable the actions of the selected smart rule(s).