This has come up before, I’m still not sure.
First, generally I would like to keep text editing item type neutral. Note here I’m going to talk about just pressing the Enter key, which isn’t quite what you are asking… I’ll address that at the end.
So for example when you press Enter I want it to do the same thing for all types… note that this default Enter behavior will already insert the new item as a child of the current item has a visible child. So the problem case is only when a project is collapsed or when it has no children.
In the case where an item is collapsed I think it doesn’t make sense to insert items as a child, even if the current item is a project and the new item is a note. Let me know if you disagree, but it seems to me that “collapsed” means “stay out!”
That leads to the case of pressing Enter when you are in an empty project. It’s true that much of the time you are planning to create a new item “In” the project. But it’s also true that you might be just creating a quick list of sibling projects. And if that’s the case auto-indent in this case would be a big headache. So again I think the uniform (insert at the level of the current items first visible descendent, or insert at the level of the current item) is best.
Your actual question
So that’s my logic for how the Enter key should behave.
It’s a little trickier when talking about the New Task and New Note commands. In those cases I agree the context is more constrained and it does seem like it would make sense to insert as a child of the current project.
But still the rules get sorta messy once I break the default behavior. For example if the current project is folded what should the behavior be… Also what should the New Project command do? I guess I could just special case New Note and New Task for when an empty project is selected… but that seems messy too.
Anyway, your thoughts are welcome, but overtime I start thinking about the details of this issue things get messy and so I leave the current default behavior.